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'。當「保護性」的人試圖定製它的時候,我討厭它,因爲它們很少得到正確的結果,這使得它比至少可預測的原始命令更加危險。 –