Comment supprimer un répertoire et tout son contenu?

142

En bas tout ce que je sais c'est que

rmdir directoryname

supprime le répertoire mais seulement s'il est vide. Existe-t-il un moyen de forcer la suppression de sous-répertoires?

piperchester
la source

Réponses:

217

La commande suivante le fera pour vous. Soyez prudent si.

rm -rf directoryname
Phillip Nordwall
la source
52
"-f" est "--force", qui remplace certains contrôles de bon sens et certaines invites. Une commande plus sûre pour commencer serait rm -r directoryname.
Jim Paris
Pour une raison quelconque, j'obtiens une rm: invalid option -- rerreur en essayant de supprimer un répertoire avec rm -r <nomrépertoire>.
Sunspawn
@Sunspawn Cochez cette question pour voir si c'est le cas.
Marc.2377
1
@JimParis Je pense que le mot "plus sûr" est relatif. Supposons que vous écriviez un script à exécuter sur un ordinateur distant. Ce script a une commande qui est supposée supprimer un répertoire. Ici, il serait "plus sûr" d'utiliser rm -rf directorynamecar vous ne voudriez pas que votre script suspende l'exécution, car il attend l'entrée de l'utilisateur. Bien sûr, vous devez être sûr que la suppression du répertoire ne fera pas de mal.
John Red
7

si rm -rf directorynamevous échoue, essayez d’utiliser rm -R -f directoryname, ou rm --recursive -f directoryname.

Si vous n’avez pas de chance avec cela, vous devriez envisager de réinstaller rm ou de changer de shell.

saterHater
la source
C'étaient les options disponibles sur ma page de manuel rm. Je l'ai consultée en tapant man rmpour afficher mes options de suppression récursive et les options de force .
samedi
Est-ce que votre rmpage de man liste -r? Qu'est ce que ça fait? (Essayez-le dans un répertoire que vous créez uniquement à des fins de test, avec uniquement des fichiers factices (et peut-être des sous-répertoires)). Quel système d'exploitation utilisez-vous?
G-Man
Post-scriptum Si rm -rne fonctionne pas, ce serait un problème de système d'exploitation, pas un problème de shell. (Strictement parlant, la version rmque vous utilisez pose un problème . Vous pouvez donc y remédier en installant une version différente de rmou en effectuant une recherche sur votre système pour voir si vous disposez déjà d'une version différente de rmdans un répertoire autre que /bin.)
G-Man
Ah, d'accord. J'ai oublié de mentionner que je suis sur Ubuntu 14.04 Quand j'ai couru man rmdans mon terminal, il m'a donné un fichier texte avec l' lessafficheur de texte. J'ai fait défiler l'écran pour trouver une entrée en retrait avec un ensemble dans lequel les options -R et --recursive étaient associées à l' option -r , ce qui signifie que tous ces arguments sont identiques.
Samedi
1
edit: avez-vous essayésudo rm -r directoryName ? Les règles non écrites des commandes de base -rpermettent à un programme de s'exécuter de manière récursive sur chaque fichier de votre système de fichiers (en commençant par celui que vous choisissiez!) Et que -f agira avec force, même si c'est dangereux . 'cd', 'mv', 'ls' soutiennent généralement ce principe. ls -r /va être un duzie, et cp -rf / /dev/nullva tout détruire sur votre système de fichiers. <- N'exécutez jamais cette commande!
samedi