Comment supprimer rapidement des fichiers et des répertoires via un terminal (shell bash) [fermé]


331

Depuis la fenêtre du terminal:

Lorsque j'utilise la rmcommande, elle ne peut supprimer que des fichiers.
Lorsque j'utilise la rmdircommande, elle supprime uniquement les dossiers vides.

Si j'ai un répertoire imbriqué avec des fichiers et des dossiers dans des dossiers contenant des fichiers, etc.

Si cela fait une différence, j'utilise le shell mac bash du terminal, pas Microsoft DOS ou linux.


Au cas où vous souhaiteriez restaurer les fichiers à l'avenir, n'utilisez pas "rm" pour de tels cas. Utilisez "rm-trash": github.com/nateshmbhat/rm-trash
Natesh bhat

Réponses:


761
rm -rf some_dir

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

Faites attention!


27
+1 et heureux d'avoir ajouté le "Soyez prudent!" partie ... définitivement une commande "Sawzall" qui peut rapidement transformer une bonne journée en mauvaise .. si elle est maniée avec insouciance.
itsmatt

5
comme ne faites pas "# rm -rf /" vous regretterez que:
DarthVader

1
@itsmatt: Vous savez ce qu'ils disent ... donnez à quelqu'un un Sawzall, et tout à coup chaque problème ressemble à des heures de plaisir!
Jim Lewis

164
Sur un Mac? Faites ceci à la place: brew install trashalors trash -rf some_dirceci déplacera le répertoire indésirable dans votre corbeille au lieu de simplement disparaître le style Prestige dans l'éther. ( source )
zakdances

4
L'approche "poubelle" est super!
anopres

59
rm -rf *

Supprimerait tout (dossiers et fichiers) du répertoire actuel.

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


17
rm -rf est une commande très risquée, vous devez toujours être prudent et spécifier le dossier à supprimer.
eomeroff

8
Que diriez-vous de courir en ls -R *premier pour voir ce qui sera supprimé parrm -rf *
Hammad Khan

Cela fonctionne bien pour moi, merci.
Monica Hübner

14

Oui il y a. L' -roption indique rmêtre r ecursive, et de supprimer toute la hiérarchie de fichiers racine à ses arguments; en d'autres termes, si on lui donne un répertoire, il supprimera tout son contenu, puis effectuera ce qui est effectivement un rmdir.

Les deux autres options que vous devez connaître sont -iet -f. -isignifie i nteractive; il rmvous invite avant de supprimer chaque fichier. -fsignifie f orce; il va de l'avant et supprime tout sans demander. -iest plus sûr, mais -fplus rapide; ne l'utilisez que si vous êtes absolument sûr de supprimer la bonne chose. Vous pouvez les spécifier avec -rou non; c'est un cadre indépendant.

Et comme d'habitude, vous pouvez combiner des commutateurs: rm -r -ic'est juste rm -ri, et rm -r -fc'est rm -rf.

Notez aussi que ce que vous apprenez applique bashsur tous les Unix OS: OS X, Linux, FreeBSD, etc. En fait, rmla syntaxe « est le même dans presque tous les shell sur tous les Unix OS. OS X, sous le capot, est vraiment un système BSD Unix.


1
Bien que toutes les options mentionnées ci-dessus soient standard parmi toutes les versions Unix répertoriées, il existe également quelques différences. Par exemple, OS X (mais pas Linux) a "rm -d", ce qui supprime les fichiers ou les répertoires vides. Pourtant, +1 pour le point que OS X est BSD en interne.
David Gelhar

Vrai --- le sous - ensemble POSIX est (à peu près) garanti de fonctionner de manière cohérente sur Unixen, mais tout ce qui en dehors peut ou non.
Antal Spector-Zabusky

2

Je cherchais donc partout un moyen de supprimer tous les fichiers d'un répertoire, à l'exception de certains répertoires et des fichiers que je voulais garder. Après de nombreuses recherches, j'ai imaginé 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 regex 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 d'autre en aurait besoin.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.