La commande Linux rm : tout ce que vous devez savoir
Publié: 2023-01-22 La commande Linux rm
supprime les fichiers et les répertoires. Pour utiliser cet outil en toute sécurité, vous devez être certain de ce qui va se passer lorsque vous appuyez sur "Entrée". Voici ce que vous devez savoir.
Qu'est-ce que la commande rm sous Linux ?
Comment supprimer des fichiers avec rm
Utilisation de caractères génériques avec rm
Utilisation interactive de rm
Utilisation de l'option rm Force
Suppression de répertoires avec rm
Éviter les erreurs lors de l'utilisation de rm
Quel EPI ?
Qu'est-ce que la commande rm sous Linux ?
La commande Linux rm
sert principalement à supprimer des fichiers. C'est celui que la plupart des gens rencontrent peu de temps après avoir commencé à utiliser Linux. Du simple fait d'être un nouveau venu sur Linux, vous risquez de faire des erreurs. Vous allez créer ou copier des fichiers par accident, ou avec le mauvais nom, ou au mauvais endroit. Tout cela fait partie de la courbe d'apprentissage de la ligne de commande. Les opérations de nettoyage pour de telles erreurs impliquent rm
.
La commande rm
peut supprimer des fichiers, des groupes de fichiers, des répertoires ou des arborescences de répertoires complètes. C'est pourquoi il doit être utilisé avec prudence. L'utilisation de rm
n'est pas difficile, mais la pénalité en cas d'échec est élevée.
Lorsqu'un fichier est supprimé avec rm
, il a disparu. Il n'est pas déplacé vers la corbeille. Il est immédiatement effacé. Cela ne signifie pas que vous devriez éviter d'utiliser rm
. Mais pour l'utiliser en toute sécurité, vous devez être conscient de ce qu'il peut faire et vous assurer que vous l'utilisez correctement.
Certains outils sont plus dangereux que d'autres et beaucoup moins tolérants aux erreurs. C'est pourquoi il n'y a jamais eu de film intitulé The Texas Wrench Massacre . rm
n'est pas une clé, c'est définitivement une tronçonneuse.
Les gens utilisent des tronçonneuses toute la journée tous les jours, et tant qu'ils en utilisent une de manière responsable et consciente, tout va bien. C'est la même chose avec rm
. Lorsque vous sortez rm
de votre sac à outils, vous devez ralentir et vérifier, puis revérifier, votre ligne de commande.
La commande rm
est un exécutable, elle ne fait pas partie du shell. Ainsi, bien que nous utilisions Bash ici, il s'agit du standard Linux rm
, pas d'un Bash rm
spécial.
EN RELATION : Lignes de commande : pourquoi les gens s'en soucient-ils encore ?
Comment supprimer des fichiers avec rm
La façon la plus simple d'utiliser rm
est de fournir le nom d'un fichier que vous souhaitez supprimer.
rm config.gc
Vous revenez silencieusement à la ligne de commande. rm
adopte la position Linux classique et discrète selon laquelle s'il ne se plaint de rien, vous pouvez supposer qu'il a fait ce que vous avez demandé. Fournir un nom de fichier comme celui-ci force rm
à rechercher le fichier dans le répertoire de travail actuel.
Vous pouvez fournir plusieurs noms de fichiers sur la ligne de commande. Vous pouvez également fournir un chemin de répertoire si un fichier que vous souhaitez supprimer ne se trouve pas dans le répertoire actuel.
rm memlog.sh /home/dave/dev-archive/config.gc
Encore une fois, rien n'est signalé si rm
parvient à supprimer les fichiers spécifiés.
CONNEXION: 37 commandes Linux importantes que vous devez connaître
Utilisation de caractères génériques avec rm
Les caractères génériques vous permettent de spécifier des groupes ou des collections de fichiers sans avoir à répertorier les fichiers individuels sur la ligne de commande.
L'astérisque " *
" représente n'importe quelle séquence de caractères, y compris aucun. Le point d'interrogation " ?
” représente n'importe quel caractère unique.
Pour vérifier que vos jokers vont correspondre à ce que vous attendez d'eux, et rien de plus, vous pouvez les utiliser avec ls avant de les utiliser avec rm.
Pour supprimer tous les fichiers PNG du répertoire actuel, utilisez « *.png ». Cela signifie que toute séquence de caractères suivie de ".png" sera reconnue. Lorsque les fichiers ont été supprimés, nous pouvons utiliser ls
pour vérifier qu'ils ont disparu.
ls *.png
rm *.png
ls *.png
Sur notre ordinateur de test, nous avons deux fichiers dans le répertoire actuel avec des noms commençant par "config".
Nous pouvons supprimer ces deux éléments en utilisant le caractère générique astérisque. Il correspond aux deux fichiers car rm
recherche des noms de fichiers commençant par "config", suivis de n'importe quelle séquence de caractères. Sur un fichier, cette séquence de caractères est ".sl3", l'extension du nom de fichier. L'autre nom de fichier n'a pas de caractères après "config", mais comme l'astérisque correspond à n'importe quel caractère ou à aucun caractère , il correspond également à ce nom de fichier.
ls config*
configuration rm*
ls config*
Vous pouvez utiliser le point d'interrogation par paires. Cela supprimera les fichiers qui ont des extensions de fichier de deux caractères exactement.
ls *.??
rm *.??
ls *.??
CONNEXES: 15 caractères spéciaux que vous devez connaître pour Bash
Utilisation interactive de rm
Un moyen sûr d'utiliser rm
est de le forcer à demander une confirmation avant de supprimer chaque fichier. L'option -i
(interactive) vous permet de le faire. Lorsque vous ajoutez cette option à votre ligne de commande, rm
vous invitera avant chaque suppression, vous donnant la possibilité d'ignorer les actions que vous n'aviez pas prévues.
Nous utiliserons l'option -i
(interactive) dans cette commande. Il essaie de supprimer tous les fichiers avec une extension de fichier à un seul caractère.
rm -i *.?
Chaque fichier correspondant est présenté tour à tour. Si vous répondez « y » ou « Y », le fichier est supprimé. Si vous répondez « n », le fichier est conservé. En fait, si vous répondez par autre chose que "y" ou "y", le fichier est conservé. Vous pouvez simplement appuyer sur "Entrée" et le fichier est conservé.
Vous pouvez parcourir rapidement votre liste de fichiers, supprimer ou ignorer des fichiers pour sélectionner ceux que vous souhaitez supprimer. Comme nous le verrons, vous pouvez utiliser l'option i-
(interactive) avec d'autres options rm
.
Commandes Linux | ||
Des dossiers | tar · pv · chat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · plier · uniq · journalctl · queue · stat · ls · fstab · echo · moins · chgrp · chown · rev · regarder · chaînes · type · renommer · zip · décompresser · monter · umount · installer · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convertir · rclone · déchiqueter · srm · scp · gzip · chattr · couper · trouver · umask · wc | |
Processus | alias · écran · top · sympa · renice · progrès · strace · systemd · tmux · chsh · historique · at · batch · gratuit · lequel · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · mur · oui · kill · sleep · sudo · su · time · groupadd · usermod · groupes · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
La mise en réseau | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · creuser · doigt · nmap · ftp · curl · wget · qui · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
CONNEXION: Meilleurs ordinateurs portables Linux pour les développeurs et les passionnés
Utilisation de l'option rm Force
Si vous essayez de supprimer un fichier en lecture seule, rm
vous demande confirmation avant de supprimer le fichier. C'est un bon filet de sécurité, mais qui pourrait devenir fastidieux si vous avez beaucoup de fichiers à supprimer.
rm geonames.sl3
L'option -f
(force) indique à rm
de ne jamais demander. Vous lui dites "Oui, supprimez tous les fichiers pour lesquels vous me demandez normalement." Cela empêche également rm
de se plaindre de fichiers inexistants.
rm -f geonames.sl3
L'option -f
(force) est souvent utilisée lorsque vous supprimez un ensemble imbriqué de fichiers et de répertoires.
Suppression de répertoires avec rm
La commande rm
peut éventuellement supprimer également des répertoires, ainsi que les fichiers qu'ils contiennent. Ceci est similaire à la commande rmdir
, mais rmdir
ne peut pas supprimer les répertoires contenant des fichiers. Il ne supprime que les répertoires vides. La commande rm
peut facilement supprimer des répertoires contenant des fichiers et d'autres répertoires.
La suppression d'un répertoire est similaire à la suppression d'un fichier. Nous fournissons le nom du répertoire sur la ligne de commande. Nous devons inclure l'option -d
(répertoire). Comme nous l'avons fait lors de la suppression de fichiers, nous pouvons fournir le nom de plusieurs répertoires. Nous pouvons fournir un chemin d'accès au répertoire qui ne se trouve pas dans le répertoire de travail actuel.
rm -d anciens projets
Si le répertoire contient des fichiers, cela échouera.
Pour supprimer un répertoire et son contenu, utilisez l'indicateur -r
(récursif). Cela supprime le répertoire, ses fichiers et tous les répertoires imbriqués qu'il contient.
rm -d archive
rm -r archive
La deuxième commande réussit.
Pour passer rm
en mode tronçonneuse complet, nous pouvons combiner les options -r
(récursive) et -f
(force). Cela indique à rm
de supprimer récursivement tous les fichiers et répertoires d'une arborescence de répertoires, même s'ils sont en lecture seule, et sans jamais nous le demander.
Sur notre ordinateur de test, nous avons un répertoire appelé "code migré". Il contient des fichiers et un autre répertoire appelé "6502". Le répertoire "6502" contient également des fichiers et un autre répertoire appelé "ASM". Il y a aussi des fichiers dans ce répertoire. Certains fichiers sont en lecture seule.
Nous inclurons également la commande -v
(verbose) afin que rm
nous dise ce qu'il fait.
rm -rfv code migré
Dans la sortie, nous pouvons voir que les fichiers sont supprimés et, lorsqu'ils sont vides, les répertoires sont également supprimés.
Éviter les erreurs lors de l'utilisation de rm
Les espaces et autres caractères étranges dans les noms de fichiers peuvent poser des problèmes. Les noms de fichiers qui commencent par un trait d'union « -
», par exemple, peuvent être confondus avec des options de ligne de commande. Si nous avons un fichier appelé "-contributors.txt", rm
essaiera de traiter le nom comme une séquence d'options de ligne de commande.
Comme rm
n'a pas d'option appelée " -c
", l'analyse de la ligne de commande échoue et le fichier n'est pas supprimé. Pour supprimer le fichier, vous devez le faire précéder de "./" pour fournir un chemin d'accès.
rm -contributors.txt
rm ./-contributors.txt
Les espaces dans les noms de fichiers sont également problématiques. Citez le nom de fichier entier ou utilisez la complétion par tabulation pour insérer le nom du fichier sur la ligne de commande pour vous, en échappant aux espaces. Si vous n'utilisez aucune de ces options, rm
traitera chaque partie du nom de fichier comme un fichier individuel.
Ici, nous avons deux fichiers, l'un appelé "sauvegarde" et l'autre appelé "sauvegarde à supprimer". Nous pouvons démontrer le problème avec ces noms de fichiers, en utilisant ls
. Si nous essayons d'utiliser ls
sur le fichier "sauvegarde à supprimer" et que nous n'échappons pas ou ne citons pas le nom du fichier, la commande échoue.
ls -hl sauvegarde à supprimer
ls
se plaint qu'il ne trouve pas les fichiers appelés "à" ou "supprimer", mais il trouve un fichier appelé "sauvegarde". C'est ce que rm
fera aussi. Il se plaindra de deux fichiers manquants, puis supprimera le fichier appelé "sauvegarde", ce qui n'est pas ce que nous voulions.
sauvegarde rm à supprimer
rm
pense qu'il travaille avec trois fichiers, "backup", "to" et "delete". Il se plaint qu'il ne peut pas trouver "à" et "supprimer", mais il trouve et supprime silencieusement "sauvegarde".
Le fait de citer le nom du fichier permet à rm
de supprimer le bon fichier.
rm 'sauvegarde à supprimer'
Vous pouvez également échapper les espaces avec des barres obliques inverses « \
», comme ceci :
rm sauvegarde\ vers\ supprimer
Si vous utilisez la complétion par tabulation pour entrer vos noms de fichiers, ils seront automatiquement échappés, si nécessaire.
Quel EPI ?
Contrairement aux tronçonneuses du monde réel, il n'y a pas d'équipement de protection individuelle que vous pouvez utiliser avec rm
.
Ce que vous pouvez faire, c'est vérifier votre syntaxe avec ls
avant de l'essayer avec rm
et utiliser le mode interactif pour pouvoir décider de ce qui est supprimé.
En dehors de cela, c'est de la pratique jusqu'à ce que vous vous sentiez à l'aise et en confiance. Le moyen le plus sûr de le faire est de copier un tas de fichiers sacrificiels dans un répertoire et de s'entraîner sur ceux-ci.
CONNEXION: Supprimer les fichiers de plus de x jours sous Linux