Article original : How to Remove a Directory in Linux – Delete a Folder Command
Par Dillion Megida
Si vous utilisez une interface utilisateur, vous pouvez faire un clic droit sur un répertoire et sélectionner "Supprimer" ou "Déplacer vers la corbeille". Mais comment faire cela dans le terminal ? Je vais expliquer cela dans cet article.
Comment supprimer un répertoire sous Linux
Il existe deux façons de supprimer des répertoires sous Linux : les commandes rm et rmdir.
En résumé, la commande rm supprime des répertoires qui peuvent contenir du contenu tel que des fichiers et des sous-répertoires, tandis que rmdir supprime UNIQUEMENT les répertoires vides.
De plus, les deux commandes suppriment les répertoires de manière permanente (plutôt que de les déplacer vers la corbeille), alors soyez prudent lorsque vous les utilisez.
Examinons les deux commandes plus en détail.
Comment utiliser la commande Linux rm
Vous utilisez la commande rm pour supprimer des fichiers et des répertoires sous Linux. Pour les répertoires, cette commande peut être utilisée pour supprimer entièrement un répertoire, c'est-à-dire qu'elle supprime un répertoire et tous les fichiers et sous-répertoires qu'il contient.
Voici la syntaxe de cette commande :
rm [options] [fichiers et/ou répertoires]
Pour supprimer un fichier, par exemple test.txt, vous pouvez utiliser la commande sans options comme ceci :
rm test.txt
Pour les répertoires, vous devez fournir certaines options de drapeau.
Comment supprimer un dossier avec son contenu
Pour un répertoire contenant du contenu, vous devez fournir le drapeau -r. Sans utiliser ce drapeau comme ceci :
rm test
Vous obtiendrez cette erreur : rm : test : est un répertoire
Le drapeau -r informe la commande rm de supprimer récursivement le contenu d'un répertoire (qu'il s'agisse de fichiers ou de sous-répertoires). Vous pouvez donc supprimer un répertoire comme ceci :
rm -r test
Comment supprimer un dossier vide
Pour un dossier vide, vous pouvez toujours fournir le drapeau -r, mais le drapeau dédié -d s'applique à ce cas. Sans ce drapeau, vous obtiendrez la même erreur rm : [dossier] : est un répertoire.
Pour supprimer un répertoire vide, vous pouvez utiliser cette commande :
rm -d test
Il est recommandé d'utiliser le drapeau -d pour les cas de répertoires vides plutôt que le drapeau -r car le drapeau -d garantit qu'un répertoire est vide.
S'il n'est pas vide, vous obtiendrez l'erreur rm : test : Répertoire non vide. Donc, pour être sûr que vous effectuez l'opération de répertoire vide appropriée, utilisez le drapeau -d.
Comment utiliser la commande Linux rmdir
La commande rmdir est spécifiquement utilisée pour supprimer des répertoires vides. La syntaxe est :
rmdir [dossiers]
C'est l'équivalent de la commande rm avec le drapeau -d : rm -d.
Lorsque vous utilisez rmdir sur un répertoire non vide, vous obtenez cette erreur : rmdir : [dossier] : Répertoire non vide.
Pour supprimer un répertoire vide, utilisez cette commande sans options :
rmdir test
La commande rmdir dispose également du drapeau -p, qui vous permet de supprimer un répertoire ainsi que son parent dans l'arborescence. Par exemple, si vous avez cette structure de fichiers :
> Test
---> Test22
Dans ce cas, Test est un répertoire qui contient le sous-répertoire Test2. Si vous supprimez le répertoire Test2, Test devient un répertoire vide. Au lieu de faire :
rmdir Test/Test2 Test
# suppression de Test2 puis de Test
Vous pouvez utiliser le drapeau -p comme ceci :
rmdir -p Test/Test2
Cette commande supprimera Test2 puis supprimera Test, le parent dans l'arborescence. Mais cette commande générera une erreur si l'un des répertoires n'est pas vide.
Comment supprimer des répertoires correspondant à un motif sous Linux
Vous pouvez également utiliser rm et rmdir avec des motifs glob. Le globbing est similaire à Regex, mais le premier est utilisé pour faire correspondre des noms de fichiers dans le terminal.
Par exemple, si vous souhaitez supprimer les répertoires test1, test2 et test3, au lieu d'exécuter :
rm -r test1 test2 test3
# ou s'ils sont vides
rmdir test1 test2 test3
Vous pouvez utiliser un motif glob avec un caractère générique comme ceci :
rm -r test*
# ou s'ils sont vides
rmdir test*
L'astérisque * correspond à tout mélange de caractères après le mot "test". Vous pouvez également appliquer d'autres motifs glob. Pour en savoir plus, consultez la documentation sur le globbing
Conclusion
Maintenant, vous savez comment supprimer des répertoires sous Linux à partir de la ligne de commande. Vous avez appris les commandes rm et rmdir et quand utiliser chacune.
Bonne programmation !