Shell-Script
刪除一個目錄中的文件,這些文件也在另一個目錄中
我使用這個複制了一個目錄:
cp -r dir/ ../../
不假思索地意識到它複製了內容
dir
而不是實際dir
到上面的目錄。現在我有一堆文件需要刪除,這樣我才能cp
正確重做。如果我錯誤地複制的所有文件與任何特定內容都不匹配,我該如何刪除它們?
好的,這與klapaucius 的回答基本相同。
cp
(如果覆蓋了一些現有文件,它不會修復任何損壞。)假設您在源目錄中(在 中
dir
)。這個命令:find . -type f -exec echo '{}' ';'
將列出您
dir
目錄中存在的所有文件(遞歸)(非常像-type f
選項用於防止列出子目錄。所以,如果你使用:
find dir -type f -exec echo '../../../{}' ';'
這應該列出目標目錄中的相應文件(副本)。
現在,如果列表正確,您將能夠使用以下方法刪除副本:
find dir -type f -exec rm -- '../../../{}' ';'
至於修剪來自
cp
……嗯……的剩餘空目錄