0
我想在Linux中删除一个非空目录,里面有一个符号链接的目录结构。当我运行时在linux中删除一个包含符号链接的目录
rm -rf /direcory
它不仅删除所有符号链接和目录,而且还删除那些符号链接指向的所有目录。有没有命令只是一个包含符号链接的目录?
我想在Linux中删除一个非空目录,里面有一个符号链接的目录结构。当我运行时在linux中删除一个包含符号链接的目录
rm -rf /direcory
它不仅删除所有符号链接和目录,而且还删除那些符号链接指向的所有目录。有没有命令只是一个包含符号链接的目录?
反例:
$ mkdir directory
$ cd directory
$ mkdir to-be-removed to-be-left-behind
$ cd to-be-left-behind
$ mkdir a b c
$ cd ../to-be-removed
$ ln -s ../to-be-left-behind/* .
$ cd ..
$ ls -lR
total 0
drwxr-xr-x 5 jleffler staff 170 Dec 17 17:25 to-be-left-behind
drwxr-xr-x 5 jleffler staff 170 Dec 17 17:25 to-be-removed
./to-be-left-behind:
total 0
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 a
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 b
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 c
./to-be-left-behind/a:
./to-be-left-behind/b:
./to-be-left-behind/c:
./to-be-removed:
total 24
lrwxr-xr-x 1 jleffler staff 22 Dec 17 17:25 a -> ../to-be-left-behind/a
lrwxr-xr-x 1 jleffler staff 22 Dec 17 17:25 b -> ../to-be-left-behind/b
lrwxr-xr-x 1 jleffler staff 22 Dec 17 17:25 c -> ../to-be-left-behind/c
$ rm -fr to-be-removed
$ ls -lR
total 0
drwxr-xr-x 5 jleffler staff 170 Dec 17 17:25 to-be-left-behind
./to-be-left-behind:
total 0
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 a
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 b
drwxr-xr-x 2 jleffler staff 68 Dec 17 17:25 c
./to-be-left-behind/a:
./to-be-left-behind/b:
./to-be-left-behind/c:
$
的符号链接被删除,但它们在点的目录不会被删除。
因此,在您的示例中还有其他工作。例如,如果符号链接指向to-be-removed
下的文件或目录,则符号链接和目标都将被删除,但仅仅是因为目标位于火线中。
您正在使用哪个'rm'命令?标准的人不这样做;它只是删除符号链接,而不是符号链接指向的东西(除非符号链接指向您正在删除的目录下的目录)。 –
非常感谢,我检查了它的类型,它是一个自定义的脚本,所以不要这么做:) – sublime
这就是为什么在所有命令中,你不应该自定义'rm'。当“保护性”的人试图定制它的时候,我讨厌它,因为它们很少得到正确的结果,这使得它比至少可预测的原始命令更加危险。 –