Shell

如何刪除所有子目錄中具有給定名稱的所有文件?

  • December 31, 2014

我想刪除我的主目錄的所有子目錄中具有給定名稱的所有文件。

我試過:

rm -r file

在我的主目錄中,但它不起作用,因為該目錄中不存在該文件。

find . -name "filename" -delete

作為對@tante 答案的詳細說明,您可能希望在刪除這些文件之前確保使用的文件列表是正確的:

find <source_dir> -name <filename> -print

如果檢查顯示有效列表,則

find <source_dir> -name <filename> -delete

如果希望使用臨時保存目錄在許多目錄中使用此選項,則另一種選擇:

mkdir <dest_dir>
for i in <list_of_directories>
do
 find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done

# check dest_dir
ls dest_dir
rm -rf <dest_dir>

與往常一樣,請在執行之前確保任何腳本的準確性,並始終準備好備份以防萬一出現問題。

引用自:https://unix.stackexchange.com/questions/3672