428 votes

Comment supprimer rapidement des fichiers et des répertoires

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.

970voto

Jim Lewis Points 18753
rm -rf some_dir

-r "recursif" (récursif) -f "force" (supprimer les messages de confirmation)

Faites attention !

88voto

Prine Points 3573
rm -rf *

Supprime tout (dossiers et fichiers) dans le répertoire actuel.

Mais attention ! N'exécutez cette commande que si vous êtes absolument sûr que vous êtes dans le bon répertoire.

19voto

Antal S-Z Points 17977

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.

4voto

msantoro12 Points 11

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.

1voto

robi Points 70

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X