Commande Linux rm : tout ce que vous devez savoir

La commande Linux rm supprime les fichiers et les répertoires. Pour utiliser cet outil en toute sécurité, vous devez être sûr de ce qui se passera lorsque vous appuierez sur "Entrée". Voici ce que vous devez savoir.

Commande Linux rm : tout ce que vous devez savoir - %categories

Qu'est-ce que la commande rm sous Linux ?

La commande Linux rm sert principalement à supprimer des fichiers. C'est l'une des choses 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 êtes susceptible de faire des erreurs. Vous allez créer ou copier des fichiers par erreur, avec le mauvais nom ou au mauvais emplacement. Tout cela fait partie de la courbe d'apprentissage de la ligne de commande. Les nettoyages pour de telles erreurs incluent rm.

La commande rm peut supprimer des fichiers, des groupes de fichiers, des répertoires ou des arborescences de répertoires entières. 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 disparaît. Il n'est pas déplacé vers la corbeille. Il est effacé instantanément. Cela ne signifie pas que vous devez é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 risqués que d'autres et pardonnent moins les erreurs. C'est pourquoi il n'y a pas 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, et tant qu'ils en utilisent une de manière responsable et consciente, tout va bien. C'est la même affaire avec rm. Lorsque vous sortez rm de votre boîte à outils, il devrait ralentir et vérifier, puis revérifier sur la ligne de commande.

La commande rm est un exécutable et ne fait pas partie du shell. Donc, même si nous utilisons Bash ici, c'est le rm Linux standard, pas un rm Bash spécial.

Comment supprimer des fichiers avec rm

La façon la plus simple d'utiliser rm est de fournir le nom du fichier que vous souhaitez supprimer.

rmconfig.gc

Commande Linux rm : tout ce que vous devez savoir - %categories

Vous revenez silencieusement à la ligne de commande. rm adopte la position détournée classique de Linux 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 le fichier que vous souhaitez supprimer ne se trouve pas dans le répertoire actuel.

rm memlog.sh /home/dave/dev-archive/config.gc

Commande Linux rm : tout ce que vous devez savoir - %categories

Encore une fois, rien n'est signalé si rm a réussi à supprimer les fichiers sélectionnés.

Lisez aussi:  20 des meilleures distributions Linux légères pour 2021

Utiliser des caractères génériques avec rm

Les caractères génériques vous permettent de spécifier des groupes de fichiers sans avoir à répertorier les fichiers individuels sur la ligne de commande.

Un astérisque "*" représente n'importe quelle chaîne de caractères, y compris aucun. point d'interrogation "?" représente n'importe quel caractère unique.

Pour vérifier que vos caractères génériques correspondent à 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 sont supprimés, nous pouvons utiliser ls pour vérifier s'ils ont disparu.

ls*.png
rm*.png
ls*.png

Commande Linux rm : tout ce que vous devez savoir - %categories

Sur notre ordinateur de test, nous avons deux fichiers dans le répertoire actuel avec des noms commençant par "config".

Nous pouvons omettre les deux en utilisant le caractère générique astérisque. Il correspond aux deux fichiers car rm recherche les noms de fichiers commençant par "config", suivis de n'importe quelle séquence de caractères. Dans 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 à tout ou aucun caractère, il correspond également à ce nom de fichier.

lsconfig*
configuration rm*
lsconfig*

Commande Linux rm : tout ce que vous devez savoir - %categories

Vous pouvez utiliser le point d'interrogation par paires. Cela supprimera les fichiers qui ont exactement deux extensions de fichier lettre.

ls*.??
rm*.??
ls*.??

Commande Linux rm : tout ce que vous devez savoir - %categories

Utiliser rm de manière interactive

Le 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 à la ligne de commande, rm vous invitera avant chaque suppression, vous donnant la possibilité d'ignorer les actions que vous n'aviez pas l'intention de faire.

Nous utiliserons l'option -i (interactive) dans cette commande. Tente de supprimer tous les fichiers avec une extension de fichier à un caractère.

rm -je *.?

Commande Linux rm : tout ce que vous devez savoir - %categories

Chaque fichier correspondant est présenté tour à tour. Si vous répondez "O" ou "O", le fichier sera 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 choisir les fichiers à supprimer. Comme nous le verrons, vous pouvez utiliser l'option -i (interactive) avec les autres options rm.

Lisez aussi:  Comment créer un fichier ".Desktop" pour votre application sous Linux

en utilisant l'option rm force

Si vous essayez de supprimer un fichier en lecture seule, rm vous demandera confirmation avant de supprimer le fichier. C'est un bon filet de sécurité, mais cela peut devenir fastidieux si vous avez beaucoup de fichiers à supprimer.

rm noms géographiques.sl3

Commande Linux rm : tout ce que vous devez savoir - %categories

L'option -f (force) indique à rm de ne jamais demander. Vous lui dites "Oui, supprimez tous les fichiers que vous me demandez habituellement". Cela empêche également rm de se plaindre qu'il n'y a pas de fichiers.

rm -f noms géographiques.sl3

Commande Linux rm : tout ce que vous devez savoir - %categories

L'option -f (force) est souvent utilisée lorsque vous supprimez un ensemble imbriqué de fichiers et de répertoires.

Supprimer des 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.

Supprimer un répertoire revient à supprimer 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 les noms de plusieurs répertoires. Nous pouvons fournir un chemin vers un répertoire qui n'existe pas dans le répertoire de travail actuel.

rm -d anciens projets

Commande Linux rm : tout ce que vous devez savoir - %categories

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 archives
rm -r archives

Commande Linux rm : tout ce que vous devez savoir - %categories

La deuxième commande a réussi.

Pour passer rm en mode scie complète, nous pouvons combiner les options -r (récursive) et -f (force). Cela indique à rm de supprimer de manière récursive tous les fichiers et dossiers de l'arborescence des répertoires, même s'ils sont en lecture seule, et sans 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 nommé « ASM ». Il y a aussi des fichiers dans ce répertoire. Certains fichiers sont en lecture seule.

Nous inclurons également la commande -v (verbose) pour que rm nous dise quoi faire.

rm -rfv code migré

Commande Linux rm : tout ce que vous devez savoir - %categories

Dans la sortie, nous pouvons voir que les fichiers ont été supprimés et lorsqu'ils sont vides, les répertoires sont également supprimés.

Commande Linux rm : tout ce que vous devez savoir - %categories

Éviter les erreurs lors de l'utilisation de rm

Les espaces et autres caractères étranges dans les noms de fichiers peuvent causer des problèmes. Les noms de fichiers commençant par un tiret "-" par exemple, peuvent être confondus avec les options de ligne de commande. Si nous avons un fichier appelé "-contributors.txt", rm essaiera de traiter le nom comme une chaîne d'options de ligne de commande.

Lisez aussi:  8 commandes d'arrêt Linux utiles pour redémarrer ou arrêter un PC Linux

Étant donné que 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 un fichier, vous devez le préfixer avec un "./" pour fournir un chemin vers celui-ci.

rm -contributeurs.txt
rm ./-contributeurs.txt

Commande Linux rm : tout ce que vous devez savoir - %categories

Les espaces dans les noms de fichiers sont également un problème. Citez le nom de fichier entier ou utilisez la tabulation pour insérer le nom de fichier sur la ligne de commande pour vous-même, en échappant aux espaces comme vous le faites. Si vous n'utilisez aucune de ces options, rm traitera chaque partie du nom de fichier comme un seul fichier.

Ici, nous avons deux fichiers, l'un appelé Backup et l'autre appelé Delete Backup. Nous pouvons illustrer le problème avec ces noms de fichiers en utilisant ls. Si nous essayons d'utiliser ls dans le fichier de sauvegarde pour supprimer et que nous n'échappons pas ou ne déplaçons pas le nom du fichier, la commande échoue.

ls -hl sauvegarde à supprimer

Commande Linux rm : tout ce que vous devez savoir - %categories

ls se plaint de ne pas trouver les fichiers appelés "à" ou "supprimer", mais il trouve un fichier appelé "sauvegarde". C'est ce que rm fera également. Il se plaindra que deux fichiers manquent, puis il supprimera le fichier appelé "Sauvegarde", dont nous ne voulions pas.

sauvegarde rm à supprimer

Commande Linux rm : tout ce que vous devez savoir - %categories

rm pense que cela fonctionne avec trois fichiers, 'backup', 'to' et 'delete'. Il se plaint de ne pas trouver To et Delete, mais il trouve Backup et le supprime silencieusement.

Le fait de citer le nom du fichier permet à rm de supprimer le bon fichier.

rm 'sauvegarde à supprimer'

Commande Linux rm : tout ce que vous devez savoir - %categories

Vous pouvez également échapper aux espaces en utilisant une barre oblique inverse "\", comme ceci :

rm sauvegarde\vers\supprimer

Commande Linux rm : tout ce que vous devez savoir - %categories

Si vous utilisez l'onglet Achèvement de tabulation pour entrer des noms de fichiers, ils seront automatiquement échappés, si nécessaire.

Qu'est-ce qu'un équipement de protection individuelle ?

Contrairement aux tronçonneuses réelles, il n'y a pas d'équipement de protection individuelle que vous pouvez utiliser avec votre 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 ce qui sera supprimé.

En dehors de cela, c'est une pratique jusqu'à ce que vous vous sentiez à l'aise et confiant. Le moyen le plus sûr de le faire est de copier un ensemble de fichiers sacrificiels dans un répertoire et de s'entraîner dessus.

Vous pourriez l'aimer aussi