2013-10-07 31 views
0

我想我的手在一些Bash腳本和任何幫助,將不勝感激。Bash,找到並刪除,同時保留目錄

該腳本應該查找/ Users /中的所有用戶用戶,並刪除裏面的所有內容。電影,文件,桌面和音樂。

雖然仍然保留目錄基本上清空它。也不包括ladmin,shared和Guest的用戶文件。

當我執行。它不清空文件,雖然我得到了我期望的反饋。我在這裏錯過簡單的東西嗎?

DIR_CD=/Users/ 

cd $DIR_CD 

find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \ 
     -maxdepth 1 -print -exec rm -rf {}/Desktop/* \; 
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \ 
     -maxdepth 1 -print -exec rm -rf {}/Documents/* \; 
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \ 
     -maxdepth 1 -print -exec rm -rf {}/Movies/* \; 
find . -type d ! -name "*ladmin*" ! -name "*Guest*" ! -name "*Shared*" \ 
     -maxdepth 1 -print -exec rm -rf {}/Music/* \; 
+2

這聽起來不像一個好的初學者項目。我希望你正在測試別人的系統! – beroe

+0

檢查xargs。 –

+0

假設ladmin,Guest和Shared存在於/用戶看起來對我來說很好。任何錯誤?你用sudo跑了嗎? –

回答

0

是否這樣?

for d in /Users/*; do 
    case ${d#*/} in ladmin | Guest | Shared) continue ;; esac 
    rm -rf "$d"/Desktop/* "$d"/Documents/* "$d"/Movies/* "$d"/Music/* 
done 

隨着Bash extended globbing你可以用一個通配符表達式來完成這一切。

+0

不會刪除ladmin shared和Guest中的所有內容。 –