10 jeux amusants à jouer dans le terminal Linux
Agence web » Actualités du digital » La commande Linux rm : tout ce que vous devez savoir

La commande Linux rm : tout ce que vous devez savoir

La commande rm permet de supprimer un fichier ou un répertoire en passant son nom : « rm filename » ou « rm -d directory ». Vous pouvez également inclure un chemin de répertoire. S’il y a des fichiers dans le répertoire, utilisez l’option -r « rm -r directory » pour supprimer les fichiers et les dossiers de manière récursive.

Le Linux rm La commande 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 ?

Le Linux rm La commande 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 de telles erreurs impliquent rm .

Les rm La commande 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. En utilisant rm n’est pas difficile, mais la pénalité en cas d’échec est élevée.

Lorsqu’un fichier est supprimé avec rm , c’est parti. Il n’est pas déplacé vers la corbeille. Il est immédiatement effacé. 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 dangereux que d’autres et beaucoup moins tolérants aux erreurs. C’est pourquoi il n’y a jamais eu de film intitulé Le massacre de Texas Wrench. 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 affaire avec rm . Quand tu tire rm de votre sac à outils, vous devez ralentir et vérifier, puis revérifier, votre ligne de commande.

Les rm La commande est un exécutable, elle ne fait pas partie du shell. Donc, bien que nous utilisions Bash ici, c’est le Linux standard rmpas un Bash spécial rm.

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

Suppression d'un seul fichier en passant son nom de fichier à rm

Vous revenez silencieusement à la ligne de commande. rm adopte la position classique et discrète 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 provoque rm pour rechercher le fichier dans le répertoire de travail courant.

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

Suppression de deux fichiers en transmettant leur nom de fichier et leur chemin de répertoire à rm

Encore une fois, rien n’est signalé si rm parvient à supprimer les fichiers spécifiés.

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 aucune. 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 sont partis.

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

Utilisation du caractère générique astérisque pour supprimer tous les fichiers avec l'extension de fichier 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 parce que l’astérisque correspond à n’importe quel caractère ou pas de caractèresil correspond également à ce nom de fichier.

ls config*
rm config*
ls config*

Utilisation du caractère générique astérisque pour supprimer deux fichiers, un avec et un sans, une extension de fichier

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 *.??

Utilisation de deux caractères génériques de point d'interrogation pour supprimer des fichiers dont les extensions de fichier comportent exactement deux caractères

Utilisation interactive de rm

Une manière sûre d’utiliser rm est de le forcer à demander confirmation avant de supprimer chaque fichier. Les -i (interactif) vous permet de le faire. Lorsque vous ajoutez cette option à votre ligne de commande, rm vous avertira avant chaque suppression, vous donnant la possibilité d’ignorer les actions que vous n’aviez pas prévues.

Nous utiliserons le -i (interactif) dans cette commande. Il essaie de supprimer tous les fichiers avec une extension de fichier à un seul caractère.

rm -i *.?

Utilisation interactive de rm pour qu'il s'affiche avant chaque suppression

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 le i- option (interactive) avec d’autres rm options.

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

rm invitant l'utilisateur à confirmer qu'il souhaite supprimer un fichier en lecture seule

Les -f (forcer) l’option instruit rm à ne jamais demander. Vous lui dites « Oui, supprimez tous les fichiers pour lesquels vous me demandez normalement. » Il empêche également rm de se plaindre de fichiers inexistants.

rm -f geonames.sl3

Utilisation de l'option -f (force) pour empêcher rm de demander des suppressions

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

Suppression de répertoires avec rm

Les rm La commande peut éventuellement supprimer également des répertoires, ainsi que les fichiers qu’ils contiennent. Ceci est similaire au rmdir commande, mais rmdir ne peut pas supprimer les répertoires contenant des fichiers. Il ne supprime que les répertoires vides. Les rm La commande 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 le -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 old-projects

Utilisation de l'option -d (répertoire) pour supprimer un répertoire

Si le répertoire contient des fichiers, cela échouera.

Pour supprimer un répertoire et son contenu, utilisez le -r drapeau (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

Utilisation de l'option -r (récursive) pour supprimer un répertoire et ses fichiers

La deuxième commande réussit.

Commuter rm en mode tronçonneuse complet, nous pouvons combiner le -r (récursif) et -f (forcer). Cela raconte rm pour supprimer de manière récursive 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 le -v (verbeux) de sorte que rm nous dit ce qu’il fait.

rm -rfv migrated-code

Utilisation des indicateurs -rfv pour que rm supprime des fichiers et des répertoires, même des fichiers en lecture seule, sans invite

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

La sortie des drapeaux -rfv montrant les fichiers qui sont supprimés et les répertoires qui sont supprimés une fois qu'ils sont vides

É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 commençant 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.

Car 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

Utilisation de "./" pour contourner le problème de suppression d

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 backup to delete

Essayer d'utiliser ls sur un fichier avec des espaces dans son nom, sans citer la chaîne ou échapper aux espaces

ls se plaint qu’il ne peut pas trouver 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.

rm backup to delete

Essayer d'utiliser rm sur un fichier avec des espaces dans son nom, sans citer la chaîne ou échapper aux espaces

rm pense qu’il fonctionne avec trois fichiers, « sauvegarder », « vers » et « supprimer ». Il se plaint qu’il ne peut pas trouver « à » et « supprimer », mais il trouve et supprime silencieusement « sauvegarde ».

La citation du nom de fichier permet rm pour supprimer le bon fichier.

rm 'backup to delete'

Utilisation de rm avec un nom de fichier entre guillemets pour surmonter le problème des espaces dans le nom de fichier

Vous pouvez également échapper aux espaces avec des barres obliques inverses « « , comme ça:

rm backup to delete

Utilisation de rm avec un nom de fichier avec des espaces échappés pour surmonter le problème des espaces dans le nom de fichier

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 rmet utilisez le mode interactif pour décider de ce qui doit être 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.

★★★★★