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 supprimer des fichiers est assez puissante, capable de supprimer à peu près n'importe quel fichier imaginable dans le système de fichiers - qu'il soit ou non supprimé. Une fois que vous avez ajouté wildcards et sudo, rm et srm car exponentiellement plus puissant et potentiellement dangereux, les utilisateurs avancés qui souhaitent ajouter une couche de sécurité à la fonction rm peuvent activer une boîte de 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 veulent placer une couche de vérification entre la suppression instantanée des fichiers et l'exécution de leur commande.

Il y a deux parties à cette astuce, la première consiste simplement à connaître le bon drapeau pour activer et utiliser une confirmation avant qu'un fichier ou un dossier soit supprimé avec rm, et le second utilise un alias pour faire la suppression mentionnée ci-dessus dans la nouvelle option par défaut pour la commande rm. Ces deux astuces fonctionnent sous Mac OS X, linux et la plupart des autres variantes Unix, donc il est largement agnostique pour le système d'exploitation, et il fonctionne aussi avec la puissante commande srm secure remove. Ceci est évidemment destiné 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 pour activer une confirmation avant de supprimer des fichiers avec rm (ou srm) est simplement un drapeau -i, utilisé comme ceci:

rm -i filename

Par exemple, si vous deviez supprimer un fichier nommé "theSampleFile.zip" et que vous vouliez avoir une confirmation avant la suppression de la commande, vous utiliseriez la syntaxe suivante:

rm -i theSampleFile.zip

Une fois que vous avez appuyé sur return, il vous sera demandé si vous souhaitez ou non supprimer le nom de fichier en question, avec la commande en répétant le fichier exact avant de le supprimer comme ceci:

% rm -i theSampleFile.zip
remove theSampleFile.zip? y

Frapper 'y' et retourner répond par un 'oui' pour supprimer le fichier, et frapper 'n' et retourner la réponse avec 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 sous-dossiers contenus:

rm -ir /Example/Folder/

Encore une fois vous devrez émettre ay ou n avant que la commande se termine pour chaque fichier trouvé dans le répertoire.

Obtenir le même dialogue de confirmation avec srm ​​utilise aussi l'option -i:

srm -i /Example/file.zip

Encore une fois, vous utiliseriez les touches y et n pour confirmer ou refuser la suppression des fichiers spécifiés.

Comment activer une confirmation de commande 'rm' par défaut avec un alias

Ouvrez votre .bash_profile ou .profile et vous pouvez créer un alias comme pour changer la syntaxe 'rm' par défaut à 'rm -i' pour être la nouvelle valeur par défaut.

alias rm='rm -i'

Vous pouvez créer le même type d'alias avec srm ​​comme ceci:

alias srm='srm -i'

L'ajout de ces deux à des lignes uniques dans le profil est suffisant, puis l'actualisation du shell permettra d'accéder à la fois à partir de bash, zsh, tcsh, ou quel que soit votre shell utilisé.

Vous avez d'autres astuces avancées pour protéger rm et srm sur la ligne de commande avant de supprimer des fichiers? Faites le nous savoir dans les commentaires. Et si vous voulez juste apprendre des conseils de ligne de commande plus intéressants, consultez nos articles sur le sujet général.