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
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
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
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.
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.
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:
Au lieu d'aliaser la commande RM par défaut sur RM -I, vous pouvez utiliser l'une des alternatives plus sûres suivantes:
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
Ajoutez la ligne suivante à la fin:
alias rmi = 'rm -i'
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
Vous serez invité si vous souhaitez vraiment supprimer le fichier.
RM: Supprimer le fichier régulier «SomeFile.txt»?
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:
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
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
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
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
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'
Vous pouvez le vérifier en répertoriant le contenu du répertoire ~ / .trash.
$ ls ~ / .trash
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
$ mv somefile.txt_2024-02-28_16-53-59 ~ / somefile.txt
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
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
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
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:
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!