Commandes de base Linux - Ep03 - Créer et supprimer un répertoire vide: mkdir, rmdir
Table des matières:
- Avant que tu commences
- Suppression de répertoires avec
rmdir
- Suppression de répertoires avec
rm
- Suppression de répertoires avec
find
- Suppression de tous les répertoires vides
- / bin / rm: liste d'arguments trop longue
- Conclusion
Il existe plusieurs façons de supprimer des répertoires dans les systèmes Linux. Si vous utilisez un gestionnaire de fichiers Desktop comme 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) de la ligne de commande.
, nous expliquerons comment supprimer des répertoires sous Linux à l'aide des commandes
rmdir
,
rm
et
find
.
Avant que tu commences
Lorsque vous supprimez un répertoire à l'aide de votre gestionnaire de fichiers de bureau, le répertoire est en fait déplacé vers la corbeille et peut être facilement récupéré.
Soyez extrêmement prudent lorsque vous supprimez des fichiers ou des répertoires de la ligne de commande, car une fois le répertoire supprimé à l'aide des commandes expliquées, 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 d'écriture sur le répertoire et son contenu. Sinon, vous obtiendrez l'erreur «Opération non autorisée».
Les noms de répertoire contenant un espace doivent être échappés par une barre oblique inverse (
/
).
Suppression de répertoires avec
rmdir
rmdir
est un utilitaire de ligne de commande pour supprimer des répertoires vides. Il 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 devez taper:
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 la commande
rm
ou supprimer manuellement le contenu du répertoire avant de pouvoir le supprimer.
Suppression de répertoires avec
rm
rm
est un utilitaire de ligne de commande pour supprimer des fichiers et des répertoires. Contrairement à
rmdir
la commande
rm
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 l'option
-d
(
--dir
) et pour supprimer un répertoire non vide et tout son contenu, utilisez l'option
-r
(
--recursive
ou
-R
).
Par exemple, pour supprimer un répertoire nommé
dir1
avec tout son contenu, vous devez taper:
rm -r dir1
Si un répertoire ou un fichier du répertoire est protégé en écriture, vous serez invité à confirmer la suppression. Pour supprimer un répertoire sans y être invité, utilisez l'option
-f
:
rm -rf dir1
Pour supprimer plusieurs répertoires à la fois, utilisez la commande
rm
suivie des noms des répertoires séparés par un espace. La commande ci-dessous supprimera chaque répertoire répertorié et leur contenu:
rm -r dir1 dir2 dir3
L'option
-i
indique à
rm
de vous inviter à confirmer la suppression de chaque sous-répertoire et fichier. Si le répertoire contient beaucoup de fichiers, cela peut être peu gênant, vous pouvez donc envisager d'utiliser l'option
-I
, ce qui ne vous demandera qu'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 en cours 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 répertorier d'abord les répertoires avec la commande
ls
afin que vous puissiez voir quels répertoires seront supprimés avant d'exécuter la commande
rm
.
Suppression de 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 la commande
find
pour supprimer des répertoires basés sur un modèle. Par exemple, pour supprimer tous les répertoires se
_cache
par
_cache
dans le répertoire de travail en cours, vous devez exécuter:
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'
- recherche uniquement les répertoires se_cache
par_cache
-exec
- exécute une commande externe avec des arguments facultatifs, dans ce cas,rm -r
.{} +
- ajoute les fichiers trouvés à la fin de la commanderm
.
Suppression de tous les répertoires vides
Pour supprimer tous les répertoires vides d'une arborescence de répertoires, vous devez utiliser:
find /dir -type d -empty -delete
Voici une explication des options utilisées:
-
/dir
- recherche récursivement dans le répertoire/dir
.-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 l'option
-delete
avec une extrême prudence. La ligne de commande find est évaluée comme une expression et si vous ajoutez d'
-delete
option
-delete
, la commande supprimera tout sous les points de départ que vous avez spécifiés. Utilisez toujours
-delete
comme dernière option et avant de supprimer, testez d'abord la commande sans l'option
-delete
.
/ bin / rm: liste d'arguments trop longue
Ce message d'erreur apparaît lorsque vous utilisez la commande
rm
pour supprimer un répertoire contenant un grand nombre de fichiers. Cela se produit car 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
dans le répertoire et manuellement ou en utilisant une boucle pour supprimer les sous-répertoires un par un.
La solution la plus simple consiste d'abord à supprimer tous les fichiers du répertoire avec la commande
find
, puis à supprimer le répertoire:
find /dir -type f -delete && rm -r /dir
Conclusion
Avec
rm
et
find
vous pouvez supprimer des répertoires basés sur différents critères rapidement et efficacement.
La suppression de répertoires est un processus simple et facile, mais vous devez faire attention de ne pas supprimer les données importantes.
rm rmdir trouver un terminalComment obtenir la taille d'un répertoire sous Linux
La commande du affiche la quantité d'espace fichier utilisée par les fichiers ou répertoires spécifiés.
Comment ajouter un répertoire au chemin sous Linux
Lorsque vous tapez une commande, le shell recherche dans tous les répertoires spécifiés dans la variable utilisateur $ PATH un fichier exécutable de ce nom. Cet article montre comment ajouter des répertoires à votre `PATH dans les systèmes Linux.
Comment supprimer / supprimer des utilisateurs sous Linux (commande userdel)
Sous Linux, vous pouvez supprimer un compte d'utilisateur et tous ses fichiers associés à l'aide de la commande userdel. Ce didacticiel explique la commande userdel et ses options.