J'utilise un Mac. Lorsque j'utilise la commande "rm", elle ne peut supprimer que les fichiers. La commande "rmdir" ne supprime que les dossiers vides. Si vous avez un répertoire avec des fichiers et des dossiers avec des fichiers et des dossiers dedans et ainsi de suite. Existe-t-il un moyen de supprimer tous les fichiers et les dossiers sans avoir à taper toutes les commandes ? N'oubliez pas que j'utilise l'interpréteur de commandes Mac Bash à partir du terminal, et non Microsoft DOS ou Linux.
Réponses
Trop de publicités?Si, il y en a un. Le site -r
L'option indique rm
à être r et supprime toute la hiérarchie des fichiers dont la racine se trouve dans ses arguments ; en d'autres termes, si on lui donne un répertoire, il supprimera tout son contenu et effectuera ensuite ce qui est en fait un rmdir
.
Les deux autres options que vous devez connaître sont -i
y -f
. -i
signifie i nteractif ; il rend rm
vous invite avant d'effacer chaque fichier. -f
signifie f orce ; il va de l'avant et supprime tout sans demander. -i
est plus sûr, mais -f
est plus rapide ; ne l'utilisez que si vous êtes absolument sûr vous supprimez la bonne chose. Vous pouvez les spécifier avec -r
ou non ; c'est un paramètre indépendant.
Et comme d'habitude, vous pouvez combiner les interrupteurs : rm -r -i
est juste rm -ri
y rm -r -f
es rm -rf
.
Notez également que ce que vous apprenez s'applique à bash
sur tous les OS Unix : OS X, Linux, FreeBSD, etc. En fait, rm
La syntaxe est la même dans la plupart des cas. chaque coquille sur tous les OS Unix. OS X, sous le capot, est vraiment un système Unix BSD.
J'ai donc cherché partout un moyen de supprimer tous les fichiers d'un répertoire, à l'exception de certains répertoires et fichiers que je voulais conserver. Après de nombreuses recherches, j'ai trouvé un moyen de le faire en utilisant find.
find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;
Essentiellement, il utilise une expression rationnelle pour sélectionner les répertoires à exclure des résultats, puis supprime les fichiers restants. Je voulais juste le mettre ici au cas où quelqu'un en aurait besoin.