我有這樣的檔案夾結構:
/home/
/folder1/
/backup/
/folder2/
/backup/
/folder3/
/folder4/
/backup/
/folder5/
(如您所見,并非所有目錄“檔案夾”都有目錄“備份”)
我需要檢查“檔案夾”中是否存在目錄“備份”并將其洗掉。
我正在使用這個命令:
for d in /home/* ;
do [ -d "$d/backup" ]
&& echo "/backup exists in $d"
&& rm -rf "$d/backup"
&& echo "/backup deleted in $d" ;
done
但它不起作用。請幫忙。
uj5u.com熱心網友回復:
find . -type d -name "backup" -delete -print
顯然,備份目錄下的所有內容都會丟失。
這將遞回到您的目錄中。如果您需要將其限制為僅第一級,您可以執行以下操作:
find . -maxdepth 1 -type d -name "backup" -delete -print
這兩個命令都將列印已洗掉的目錄。沒有輸出 == 沒有找到目錄,什么也沒做。
最后,您要避免像您嘗試的那樣在檔案或目錄名稱上回圈,因為您的檔案或目錄的名稱中可能包含空格。此處提供了完整的討論和解決方案:https ://mywiki.wooledge.org/BashFAQ/001
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440893.html
