Maison > Tutoriel système > Linux > Pourquoi l'aliasing de la commande RM est une mauvaise pratique dans Linux

Pourquoi l'aliasing de la commande RM est une mauvaise pratique dans Linux

Joseph Gordon-Levitt
Libérer: 2025-03-19 10:42:15
original
181 Les gens l'ont consulté

An alias in Unix/Linux is a shortcut that allows you to create custom commands or modify how existing commands behave. En utilisant la commande Alias, vous pouvez abréger une commande longue ou ajouter des options aux commandes par défaut, ce qui les rend plus faciles ou plus sûrs à utiliser.

Cependant, vous devez être prudent lorsque vous utilisez des alias, en particulier lorsqu'ils changent le comportement de commandes puissantes comme RM, pour éviter de développer de mauvaises habitudes ou de rencontrer des comportements inattendus sur différents systèmes.

In this brief tutorial, we will learn why aliasing rm to rm -i is a bad practice with a practical example. Nous allons également en apprendre davantage sur les meilleures pratiques et les alternatives plus sûres pour alias la commande RM dans Linux.

Table des matières

Pourquoi certaines personnes alimentant RM à RM -I

Lorsque vous utilisez la commande RM sur un système UNIX / Linux, il supprime les fichiers immédiatement et définitivement. Il s'agit d'une commande puissante qui doit être utilisée avec soin pour éviter de supprimer accidentellement des fichiers importants.

Certaines personnes créent un alias pour RM, comme alias rm = "rm -i", pour le rendre plus sûr. Cet alias modifie la commande RM pour toujours demander une confirmation avant de supprimer quoi que ce soit.

Permettez-moi de vous montrer un exemple, afin que vous puissiez le comprendre mieux.

Exemple de RM sans alias:

 $ rm important-file.txt
Copier après la connexion
Copier après la connexion

Cette commande supprimera immédiatement IMPORTANT-File.txt sans vous demander si vous êtes sûr. C'est rapide mais risqué si vous faites une faute de frappe ou changez d'avis.

Exemple de RM avec Alias ​​(RM -I):

 $ rm important-file.txt
Copier après la connexion
Copier après la connexion

Avec l'alias, cette commande demande maintenant: "Supprimer le fichier régulier" IMPORTANT-File.txt "?" Vous devez taper y (oui) pour le supprimer ou n (non) pour annuler. Cela semble plus sûr car cela ajoute une étape pour vérifier votre décision.

Pourquoi l'aliasing de la commande RM est une mauvaise pratique

L'alias rm = 'rm -i' est très dangereux parce que;

Raison 1 - mauvaises habitudes

Si vous vous habituez à la commande RM en demandant toujours une confirmation, vous pourriez faire moins attention à la double vérification des fichiers que vous supprimez.

Un jour, si vous utilisez un compte utilisateur sans cet ensemble d'alias , RM peut supprimer immédiatement les fichiers. Au moment où vous réalisez ce qui se passe, il pourrait être trop tard.

This habit can also be dangerous on systems without this alias because rm will delete files immediately, without asking any confirmation.

Raison 2 - Comportement incohérent

Si vous utilisez différents ordinateurs ou systèmes (comme un ordinateur de bureau, un serveur ou un ordinateur portable d'un ami), la commande RM peut ne pas avoir le même alias.

Cette incohérence peut entraîner des erreurs, où vous vous attendez à vous demander de confirmation, mais ne le faites pas, et supprime accidentellement quelque chose d'important.

Raison 3 - Problèmes de script et d'automatisation

Les scripts qui utilisent RM seront également affectés par l'alias. Si un script s'attend à supprimer des fichiers sans confirmation, l'alias peut le faire coincé en attendant une réponse. Cela peut rompre l'automatisation et provoquer une confusion.

Apprendre les bonnes habitudes

Au lieu de compter sur un alias pour la sécurité, il est préférable de pratiquer une utilisation prudente des commandes. Voici quelques conseils:

  • Vérifiez toujours la commande et les fichiers qu'il affectera avant d'appuyer sur Entrée.
  • Utilisez la commande LS pour répertorier les fichiers et assurez-vous que vous êtes dans le bon répertoire.
  • Pour les suppressions critiques, tapez manuellement RM -I pour obtenir une invite de confirmation uniquement pour cette instance, plutôt que de faire le comportement par défaut.
  • Entraînez-vous à utiliser RM dans un environnement sûr, comme un dossier avec des fichiers de test sans importance, pour renforcer la confiance et les bonnes habitudes.

Alternatives plus sûres à l'alias de commande RM

Au lieu d'aliaser la commande RM par défaut sur RM -I, vous pouvez utiliser l'une des alternatives plus sûres suivantes:

  1. Utilisation d'un alias personnalisé avec un nom de commande différent
  2. Créez un script de suppression de fichiers plus sûr qui met les données supprimées dans un répertoire poubelle
  3. Use trash-cli tool
  4. Utiliser des instantanés de système de fichiers

1. Créez un alias personnalisé

Si vous souhaitez créer un alias personnalisé pour la commande RM, utilisez entièrement un nom différent, par exemple RMI ou RMCLI ou MYRM, etc.

For example, I am going to create an alias called rmi .

 $ nano ~ / .bashrc
Copier après la connexion

Ajoutez la ligne suivante à la fin:

 alias rmi = 'rm -i'
Copier après la connexion

Enregistrez le fichier et fermez-le.

À partir de maintenant, vous devez utiliser la commande RMI pour la suppression des fichiers, au lieu du «RM» par défaut.

 $ rmi somefile.txt
Copier après la connexion

Vous serez invité si vous souhaitez vraiment supprimer le fichier.

 RM: Supprimer le fichier régulier «SomeFile.txt»?
Copier après la connexion

Appuyez sur «Y» pour confirmer la suppression du fichier ou appuyez sur «N» pour le sauter.

La création d'un alias séparé comme un alias rmi = 'rm -i' est en effet une approche plus sûre et plus efficace que de remplacer le comportement par défaut de la commande RM.

Cette méthode vous permet d'avoir une option de suppression interactive sans modifier le comportement fondamental de la RM, réduisant ainsi le risque de suppressions accidentelles dues à la dépassement de l'alias.

Benefits of Using alias rmi='rm -i' :

Voici pourquoi cette alternative est bénéfique pour la suppression de fichiers plus sûre:

  1. Clear Distinction: It keeps a clear distinction between the standard rm command and its interactive version, reducing the chance of reflexively using rm and expecting a confirmation prompt.
  2. Reduced Risk on Unfamiliar Systems: If you're working on a system that doesn't have your personalized aliases, you're less likely to accidentally delete files because you won't be in the habit of relying on rm to ask for confirmation.
  3. Flexibility: You can choose when to use rmi for safer deletion and rm for quicker, non-interactive deletions, depending on the situation and your level of certainty.

2. Créez un script de suppression de fichiers plus sûr

Dans l'exemple précédent, nous avons créé une commande personnalisée appelée «RMI» qui invite à la confirmation avant de supprimer des fichiers. Alternativement, vous pouvez écrire un petit script qui inclut la journalisation et déplace des fichiers dans un répertoire de déchets pour une revue ou une récupération ultérieure.

2.1. Créer le script

Créez un fichier texte appelé rmcli avec le contenu suivant.

 #! / bin / bash
# RMCLI: un script de suppression de fichiers plus sûr

Trash_dir = "$ home / .trash"
Log_file = "$ home / .rmcli.log"

# Assurer que le répertoire des poubelles existe
Mkdir -p "$ trash_dir"

# Déplacez les fichiers vers les déchets au lieu de supprimer
pour le fichier dans "$ @"; faire
    Timestamp = $ (date% y-% m-% d_% h-% m-% s)
    trash_path = "$ trash_dir / $ (nom de base" $ file ") _ $ himestamp"
    mv -v "$ file" "$ trash_path"
    Echo "[$ Timestamp] $ File -> $ trash_path" >> "$ log_file"
fait
Copier après la connexion

N'hésitez pas à modifier le script en fonction de vos besoins, tels que la modification de l'emplacement du répertoire des déchets ou du format de fichier journal. Enregistrez le fichier et fermez-le.

2.2. Rendre le script exécutable:

Après avoir enregistré le script, vous devez le rendre exécutable. Cela vous permet de l'exécuter en tant que commande. Pour ce faire, utilisez la commande chmod:

 $ chmod x rmcli
Copier après la connexion

2.3. Déplacez le script vers un emplacement dans votre chemin:

Pour plus de commodité, vous devez déplacer le script vers un emplacement dans le chemin de votre système afin que vous puissiez l'exécuter à partir de n'importe quel répertoire. Un endroit commun pour les scripts personnels est / usr / local / bac:

 $ sudo mv rmcli / usr / local / bin
Copier après la connexion

2.4. Utilisation du script:

Maintenant, vous pouvez utiliser la commande RMCLI tout comme vous utiliseriez RM, mais avec les fonctionnalités de sécurité de votre script.

Par exemple:

 $ rmcli somefile.txt
Copier après la connexion

This command will move somefile.txt to the trash directory instead of permanently deleting it.

Exemple de sortie:

 renommé 'someFile.txt' -> '/home/ostechnix/.trash/somefile.txt_2024-02-28_16-53-59'
Copier après la connexion

Pourquoi l'aliasing de la commande RM est une mauvaise pratique dans Linux

Vous pouvez le vérifier en répertoriant le contenu du répertoire ~ / .trash.

 $ ls ~ / .trash
Copier après la connexion

Pourquoi l'aliasing de la commande RM est une mauvaise pratique dans Linux

2.5. Récupérer les fichiers:

Pour récupérer des fichiers, accédez au répertoire des déchets (~ / .trash dans l'exemple) et remettez les fichiers vers leur emplacement d'origine ou ailleurs au besoin.

 $ cd ~ / .trash
Copier après la connexion
 $ mv somefile.txt_2024-02-28_16-53-59 ~ / somefile.txt
Copier après la connexion

2.6. Enregistrement:

Le script enregistre chaque "suppression" avec un horodatage. Assurez-vous que l'emplacement du fichier de journal spécifié dans le script existe ou est écrite. Vous pouvez consulter ce journal pour voir quels fichiers ont été déplacés vers la poubelle.

 $ cat $ home / .rmcli.log
[2024-02-28_16-53-59] SomeFile.txt -> /home/ostechnix/.trash/somefile.txt_2024-02-28_16-53-59
Copier après la connexion

3. Utilisation de la poubelle-CLI

The another safer alternative to rm is using a command-line trash can utility like trash-cli , which moves files to a trash directory instead of permanently deleting them. Cela permet la récupération des fichiers si nécessaire.

Pour savoir comment installer et utiliser Trash-Cli, veuillez consulter le lien suivant:

Trash-Cli: une poubelle de commande pour les systèmes de type UNIX

4. Utilisez des systèmes de fichiers qui prennent en charge les instantanés

Using a file system that supports unlimited snapshots, such as BTRFS (B-tree File System) or ZFS (Zettabyte File System), is an excellent strategy for safeguarding against accidental file deletion or overwriting.

Les instantanés sont essentiellement des copies en lecture seule du système de fichiers à un moment spécifique, mais sont très efficaces dans l'espace et le temps car ils ne stockent que les différences par rapport à l'instantané précédent.

Comment créer et gérer des instantanés BTRFS avec Snapper dans OpenSUSE

5. Autres pratiques plus sûres

  1. Verbose Mode: Use the verbose option (-v) with rm or your alias to get a detailed output of what is being deleted. Cela peut aider à prendre des erreurs avant de se produire. Par exemple, alias rmi = 'rm -i -v'.
  2. Scripted Safeguards: For users who frequently delete files in bulk or through scripts, consider writing a wrapper script around rm that includes logging of deleted files or requires explicit confirmation for deletions above a certain threshold (eg, number of files, file size).
  3. Educate and Practice: Regularly educate yourself and others about the implications of command-line operations and practice safe file management habits. Cela comprend la double vérification du répertoire actuel (PWD), la liste des fichiers (LS ou LA) avant la suppression et l'utilisation de chemins absolus avec prudence.

Conclusion

Tout en aliasant RM à RM -i peut sembler être une bonne mesure de sécurité, cela peut entraîner une confiance excessive et des erreurs dans les environnements où l'alias n'est pas défini.

En adoptant ces conseils et les meilleures pratiques, vous pouvez réduire considérablement les risques associés à la suppression accidentelle des fichiers avec la commande RM sur les systèmes UNIX / Linux.

Lire connexe:

  • AutoTrash - Un outil CLI pour purger automatiquement les anciens fichiers saccadés dans Linux
  • Supprimer les fichiers qui n'ont pas été accessibles pendant une période donnée sur Linux
  • Un moyen facile de protéger les fichiers contre la suppression accidentelle dans Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal