Comment supprimer un répertoire non vide dans Terminal?

534

Comment supprimer le répertoire suivant?

J'ai tapé:

rmdir lampp

Cette erreur survient:

rmdir: failed to remove 'lampp': Directory not empty

Existe-t-il une commande pour supprimer tous les fichiers du répertoire et supprimer le répertoire?

    
posée naveen 16.11.2012 - 05:37
la source

5 réponses

745

Utilisez la commande ci-dessous:

rm -rf lampp

Il supprime tous les fichiers et dossiers contenus dans le répertoire lampp .

Au cas où l'utilisateur ne serait pas autorisé à supprimer le dossier:

Ajoutez sudo au début de la commande:

sudo rm -rf folderName

Sinon, sans sudo , vous serez renvoyé une autorisation refusée. Et c'est une bonne pratique d'essayer de ne pas utiliser -f lors de la suppression d'un répertoire:

sudo rm -r folderName

Remarque: cela suppose que vous êtes déjà au même niveau que le dossier à supprimer dans le terminal, sinon:

sudo rm -r /path/to/folderName

FYI: vous pouvez utiliser les lettres -f , -r , -v :

  • -f = ignorer les fichiers inexistants, ne jamais inviter
  • -r = supprimer les répertoires et leur contenu récursivement
  • -v = pour expliquer ce qui se fait
réponse donnée Shantanu Banerjee 16.11.2012 - 06:19
la source
89
rm -R lampp

Cependant, vous devez être prudent avec une commande récursive comme celle-ci, car il est facile de supprimer accidentellement beaucoup plus que ce que vous vouliez.

C'est une bonne idée de toujours vérifier le répertoire dans lequel vous vous trouvez et si vous avez correctement saisi la commande avant d’appuyer sur Entrée.

Version plus sûre

rm -R -i lampp

L'ajout de -i le rend un peu plus sûr, car il vous demandera à chaque suppression. Cependant, si vous supprimez de nombreux fichiers, cela ne sera pas très pratique. Cependant, vous pouvez essayer ceci en premier.

Remarque sur l'option -f :

De nombreuses personnes suggèrent d’utiliser -f (en le combinant dans -Rf ou -rf ), affirmant qu’il se débarrasse des invites ennuyeuses. Cependant, dans les cas normaux, vous n'en avez pas besoin, et son utilisation supprime certains problèmes que vous ne voulez pas connaître. Lorsque vous l'utilisez, vous ne serez pas averti si vos arguments fournissent un répertoire ou un fichier non existant: rm ne supprimera rien en silence. En règle générale, essayez d'abord sans le -f : s'il y a des problèmes avec vos arguments, alors vous remarquerez. Si vous commencez à recevoir trop d’invites sur les fichiers sans accès en écriture, vous pouvez l’essayer avec -f . Vous pouvez également exécuter la commande à partir d'un utilisateur (ou du super-utilisateur utilisant sudo) disposant des autorisations complètes sur les fichiers et les répertoires que vous supprimez afin d'empêcher ces invites.

    
réponse donnée thomasrutter 16.11.2012 - 05:56
la source
21

Il existe de nombreuses façons de supprimer un répertoire via le mode CLI. Cela dépend de la manière dont vous vous sentez à l'aise.

rm -rvf /path/to/directory  
  • -r = supprimer les répertoires et leur contenu récursivement
  • -v = explique ce qui se fait
  • -f = ignore les fichiers inexistants, ne les invite jamais

Si vous êtes nouveau sur Linux, utilisez les pages de manuel des commandes ( man rm ) pour plus d'options et plus précision.

    
réponse donnée papseddy 16.11.2012 - 06:38
la source
-2

J'avais un peu de mal avec ça aujourd'hui, mais je l'ai surmonté avec sudo.

Avertissement: Soyez certain que vous souhaitez supprimer l’ensemble avant d’utiliser la commande ci-dessous.

$ sudo rm -R [Directory name]

J'ai réussi à faire cela aujourd'hui, et j'ai supprimé de nombreux répertoires non vides que je confirmais ne pas avoir besoin / besoin.

J'utilise 14.04 LTS

    
réponse donnée Thomas 29.09.2014 - 01:00
la source
-3

Au fait, je voulais personnellement supprimer un répertoire contenant un fichier / s protégé en écriture (répertoires .git et sub) et finalement réalisé que je devais aussi devenir un super utilisateur pour pouvoir supprimer ces fichiers avec succès. Voici ce que j'ai fait:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/
    
réponse donnée Harvey Williams 17.09.2013 - 19:35
la source

Lire d'autres questions sur les étiquettes