GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer (supprimer) le répertoire sous Linux

Il existe plusieurs façons de supprimer des répertoires dans les systèmes Linux. Si vous utilisez un gestionnaire de fichiers de bureau tel que Gnome's Files ou KDE's Dolphin, vous pouvez supprimer des fichiers et des répertoires à l'aide de l'interface utilisateur graphique du gestionnaire. Mais, si vous travaillez sur un serveur sans tête ou si vous souhaitez supprimer plusieurs répertoires à la fois, votre meilleure option est de supprimer les répertoires (dossiers) à partir de la ligne de commande.

Dans cet article, nous expliquerons comment supprimer des répertoires sous Linux en utilisant le rmdir , rm , et find commandes.

Avant de commencer #

Lors de la suppression d'un répertoire à l'aide d'un gestionnaire de fichiers de bureau, le répertoire est en fait déplacé vers la corbeille et peut être facilement récupéré.

Soyez très prudent lorsque vous supprimez des fichiers ou des répertoires à partir de la ligne de commande, car une fois le répertoire supprimé à l'aide des commandes expliquées dans cet article, il ne peut pas être entièrement récupéré.

Sur la plupart des systèmes de fichiers Linux, la suppression d'un répertoire nécessite une autorisation en écriture sur le répertoire et son contenu. Sinon, vous obtiendrez l'erreur "Opération non autorisée".

Les noms de répertoires contenant un espace doivent être échappés avec une barre oblique inverse (/ ).

Supprimer des répertoires avec rmdir #

rmdir est un utilitaire de ligne de commande pour supprimer les répertoires vides. C'est utile lorsque vous souhaitez supprimer un répertoire uniquement s'il est vide, sans avoir besoin de vérifier si le répertoire est vide ou non.

Pour supprimer un répertoire avec rmdir , tapez la commande suivie du nom du répertoire que vous souhaitez supprimer. Par exemple, pour supprimer un répertoire nommé dir1 vous taperiez :

rmdir dir1

Si le répertoire n'est pas vide, vous obtiendrez l'erreur suivante :

rmdir: failed to remove 'dir1': No such file or directory

Dans ce cas, vous devrez utiliser le rm ou supprimez manuellement le contenu du répertoire avant de pouvoir le supprimer.

Supprimer des répertoires avec rm #

rm est un utilitaire de ligne de commande pour supprimer des fichiers et des répertoires. Contrairement à rmdir le rm La commande peut supprimer les répertoires vides et non vides.

Par défaut, lorsqu'il est utilisé sans aucune option rm ne supprime pas les répertoires. Pour supprimer un répertoire vide, utilisez le -d (--dir ) et pour supprimer un répertoire non vide, et tout son contenu utilise le -r (--recursive ou -R ).

Par exemple pour supprimer un répertoire nommé dir1 avec tout son contenu, vous taperiez :

rm -r dir1

Si un répertoire ou un fichier dans le répertoire est protégé en écriture, vous serez invité à confirmer la suppression. Pour supprimer un répertoire sans y être invité, utilisez le -f choix :

rm -rf dir1

Pour supprimer plusieurs répertoires à la fois, appelez le rm commande, suivi des noms des répertoires séparés par un espace. La commande ci-dessous supprimera chaque répertoire répertorié et son contenu :

rm -r dir1 dir2 dir3

Le -i l'option indique rm pour vous demander de confirmer la suppression de chaque sous-répertoire et fichier. Si le répertoire contient beaucoup de fichiers, cela peut être un peu ennuyeux, vous pouvez donc envisager d'utiliser le -I option qui vous demandera une seule fois avant de procéder à la suppression.

rm -rI dir1

Pour supprimer le répertoire tapez y et appuyez sur Enter .

rm: remove 1 argument recursively? y

Vous pouvez également utiliser des extensions régulières pour faire correspondre et supprimer plusieurs répertoires. Par exemple, pour supprimer tous les répertoires de premier niveau dans le répertoire courant qui se termine par _bak , vous utiliseriez la commande suivante :

rm -r *_bak

L'utilisation d'extensions régulières lors de la suppression de répertoires peut être risquée. Il est recommandé de lister d'abord les répertoires avec le ls afin que vous puissiez voir quels répertoires seront supprimés avant d'exécuter le rm commande.

Supprimer des répertoires avec find #

find est un utilitaire de ligne de commande qui vous permet de rechercher des fichiers et des répertoires en fonction d'une expression donnée et d'effectuer une action sur chaque fichier ou répertoire correspondant.

Le scénario le plus courant consiste à utiliser le find commande pour supprimer des répertoires basés sur un modèle. Par exemple, pour supprimer tous les répertoires qui se terminent par _cache dans le répertoire de travail courant, vous lanceriez :

find . -type d -name '*_cache' -exec rm -r {} +

Analysons la commande ci-dessus :

  • /dir - recherche récursivement dans le répertoire de travail courant (. ).
  • -type d - limite la recherche aux répertoires.
  • -name '*_cache' - rechercher uniquement les répertoires qui se terminent par _cache
  • -exec - exécute une commande externe avec des arguments optionnels, dans ce cas, c'est rm -r .
  • {} + - ajoute les fichiers trouvés à la fin du rm commande.

Suppression de tous les répertoires vides #

Pour supprimer tous les répertoires vides dans une arborescence de répertoires, vous exécuteriez :

find /dir -type d -empty -delete

Voici une explication des options utilisées :

  • /dir - recherche récursivement dans le /dir répertoire.
  • -type d - limite la recherche aux répertoires.
  • -empty - limite la recherche uniquement aux répertoires vides.
  • -delete - supprime tous les répertoires vides trouvés dans la sous-arborescence. -delete ne peut supprimer que les répertoires vides.

Utilisez le -delete option avec une extrême prudence. La ligne de commande find est évaluée comme une expression, et si vous ajoutez le -delete option d'abord, la commande supprimera tout ce qui se trouve en dessous des points de départ que vous avez spécifiés.

Testez toujours la commande en premier sans le -delete option et utilisez -delete comme dernière option.

/bin/rm :liste d'arguments trop longue #

Ce message d'erreur apparaît lorsque vous utilisez le rm commande pour supprimer un répertoire qui contient un grand nombre de fichiers. Cela se produit parce que le nombre de fichiers est supérieur à la limite système de la taille de l'argument de ligne de commande.

Il existe plusieurs solutions différentes à ce problème. Par exemple, vous pouvez cd au répertoire et manuellement ou en utilisant une boucle pour supprimer les sous-répertoires un par un.

La solution la plus simple est d'abord de supprimer tous les fichiers du répertoire avec le find commande puis supprimez le répertoire :

find /dir -type f -delete && rm -r /dir

Conclusion #

Avec rm et find vous pouvez supprimer des répertoires en fonction de différents critères rapidement et efficacement.

La suppression de répertoires est un processus simple et facile, mais vous devez faire attention à ne pas supprimer de données importantes.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

  2. Comment rechercher et supprimer des répertoires de manière récursive sous Linux

  3. Comment supprimer un répertoire et un dossier sous Linux ?

  4. Comment renommer un répertoire sous Linux

  5. 5 exemples pratiques pour supprimer / supprimer un répertoire sous Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment rechercher et supprimer des répertoires vides sous Linux

Comment supprimer des fichiers et des répertoires sous Linux

Comment supprimer des fichiers et des répertoires sur un terminal Linux

Comment supprimer/supprimer des fichiers sous Linux à l'aide de la commande rm

Comment copier un répertoire sous Linux