我想删除 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
,则符号链接和目标都将被删除,但这只是因为目标无论如何都在火线上。