0

多数のシンボリックリンクを含むディレクトリ構造を持つ、Linux の空でないディレクトリを削除したいと考えています。私が走るとき

rm -rf /direcory

すべてのシンボリックリンクとディレクトリだけでなく、それらのシンボリックリンクが指すすべてのディレクトリも削除します。シンボリックリンクを含むディレクトリだけへのコマンドはありますか?

4

1 に答える 1

2

反例:

$ 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リンクとターゲットの両方が削除されます。

于 2012-12-18T01:30:43.647 に答える