2013-10-07 6 views
0

J'essaie ma main à certains scripts Bash et toute aide serait appréciée.Bash, trouver et supprimer tout en conservant le répertoire

Le script est supposé trouver tous les utilisateurs utilisateurs dans/Users/et supprimer tout ce qu'il contient. Films, documents, bureau et musique. Tout en conservant le répertoire en le vidant essentiellement. Excluant également les fichiers utilisateur de ladmin, shared et Guest.

Lorsque j'exécute. Il ne vide pas les fichiers bien que je reçoive le feed-back je m'attendrais. Ai-je manqué quelque chose de simple ici?

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

Cela ne ressemble pas à un bon projet débutant. J'espère que vous testez sur le système de quelqu'un d'autre! – beroe

+0

consultez xargs. –

+0

En supposant que ladmin, Guest et Shared existent dans/Users qui me semble bon. Des erreurs? Avez-vous couru avec sudo? –

Répondre

0

Comme ça?

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

Avec Bash extended globbing vous pouvez faire tout cela avec une seule expression générique.

+0

Non cela supprime tout dans le ladmin partagé et Invité. –

Questions connexes