Activer une confirmation lors de la suppression de fichiers et de dossiers avec la commande rm
La plupart des utilisateurs de la ligne de commande savent que la commande "rm" pour supprimer et effacer des fichiers est assez puissante, capable de supprimer à peu près n'importe quel fichier imaginable dans le système de fichiers - qu'il doive être supprimé ou non. Une fois que vous avez ajouté les jokers et sudo, rm et srm sont exponentiellement plus puissants et potentiellement dangereux, donc pour les utilisateurs avancés qui souhaitent ajouter une couche de sécurité à la fonction rm, ils peuvent activer un dialogue de confirmation avec les commandes rm et srm. Cela offre également un mécanisme de protection utile pour ceux qui apprennent la ligne de commande et qui souhaitent placer une couche de vérification entre la suppression instantanée des fichiers et l'exécution de leur commande.
Cette astuce comporte deux parties, la première consiste simplement à connaître le bon drapeau pour activer et utiliser une confirmation avant qu'un fichier ou un dossier ne soit supprimé avec rm, et la seconde utilise un alias pour faire en sorte que la suppression susmentionnée avec confirmation dans la nouvelle option par défaut de la commande rm. Ces deux astuces fonctionnent sous Mac OS X, linux, et la plupart des autres variantes d'Unix, de sorte que le système d'exploitation est largement agnostique, et qu'il fonctionne également avec la puissante commande srm secure remove. Cela s'adresse évidemment aux utilisateurs plus avancés qui sont à l'aise avec la ligne de commande pour commencer, car l'utilisation de rm et srm ne sont pas des outils appropriés pour les novices.
Utilisation de la commande rm avec confirmation avant la suppression de fichiers et de dossiers
La syntaxe permettant d'activer une confirmation avant de supprimer tout fichier avec rm (ou srm) est simplement un drapeau -i, utilisé comme tel :
rm -i nom de fichier
Par exemple, si vous supprimez un fichier nommé "theSampleFile.zip" et que vous souhaitez obtenir une confirmation avant la suppression de la commande, vous devez utiliser la syntaxe suivante :
rm -i theSampleFile.zip
Une fois que vous aurez appuyé sur "Retour", il vous sera demandé si vous souhaitez ou non supprimer le nom du fichier en question, la commande répétant le fichier exact avant de le supprimer comme tel :
% rm -i theSampleFile.zip
supprimer le fichier d'échantillon.zip ? y
En appuyant sur "y" et sur la touche retour, vous répondez par un "oui" pour supprimer le fichier, et en appuyant sur "n" et sur la touche retour, vous répondez par un "non" et le fichier ne sera pas supprimé.
La syntaxe rm -i fonctionne même avec -r pour obtenir une confirmation avant de supprimer récursivement les répertoires et le contenu des fichiers des sous-dossiers contenus :
rm -ir /Exemple/Dossier/
Là encore, vous devrez émettre un y ou un n avant que la commande ne se termine pour chaque fichier individuel trouvé dans le répertoire.
Pour obtenir le même dialogue de confirmation avec srm, il faut également utiliser le drapeau -i :
srm -i /Exemple/file.zip
Là encore, vous utiliserez les touches y et n pour confirmer ou refuser la suppression de fichiers spécifiques.
Comment activer une confirmation de commande "rm" par défaut avec un alias
Ouvrez votre fichier .bash_profile ou .profile et vous pouvez créer un alias de cette manière pour changer la syntaxe par défaut de "rm" en "rm -i" pour être la nouvelle syntaxe par défaut.
alias rm='rm -i'
Vous pouvez créer le même type d'alias avec srm comme ça :
alias srm='srm -i'
Il suffit d'ajouter ces deux éléments à des lignes uniques du profil, puis de rafraîchir le shell pour pouvoir y accéder à partir de bash, zsh, tcsh ou de n'importe quel autre shell utilisé.
Avez-vous d'autres conseils avancés pour sauvegarder rm et srm en ligne de commande avant de supprimer des fichiers ? Faites-le nous savoir dans les commentaires. Et si vous voulez simplement apprendre d'autres astuces intéressantes en ligne de commande, parcourez nos articles sur ce vaste sujet.