macOS Terminal : rm : supprimer un fichier sans détour

Notre commande Unix du Vendredi soir

Notre commande Unix du Vendredi soir : rm

Vous connaissez ce moment de flottement.

Vous venez de générer trente captures d’écran pour un article, elles s’accumulent dans Documents, et la Corbeille commence à ressembler à un grenier oublié.

Vider la Corbeille depuis le Finder fonctionne, mais dès que vos fichiers sont profondément rangés dans une arborescence, cliquer devient laborieux.

Le Terminal offre une alternative précise, rapide et sans détour : la commande rm, pour remove.

Elle supprime le fichier immédiatement, sans passer par la Corbeille.

Cette efficacité est aussi son piège. Un rm mal formulé peut effacer en une fraction de seconde des documents impossibles à récupérer.

C’est exactement pour cette raison que rm existe en version prudente : rm -i.

Cette variante vous demande une confirmation avant chaque suppression, transformant une commande brute en outil professionnel maîtrisé.

Dans ce guide, nous allons apprendre à supprimer un fichier proprement, à activer les garde-fous adaptés, et à combiner rm avec d’autres commandes pour automatiser votre ménage numérique.

Anatomie d’une commande de suppression sous Unix

La commande rm fait partie du socle historique des utilitaires Unix.

Elle est présente sur macOS depuis les toutes premières versions du système et respecte la norme POSIX.

Son rôle est de retirer une entrée de fichier du système de fichiers.

La syntaxe générale telle qu’elle apparaît dans la man page officielle Apple est la suivante :

rm [-f | -i] [-dIRrvWx] fichier ...

Les crochets indiquent que les options sont facultatives.

Vous pouvez utiliser rm seul, ou l’accompagner d’un ou plusieurs indicateurs qui modifient son comportement.

Voici les options les plus utilisées au quotidien sur macOS, telles que définies dans la documentation Apple.

L’option -i demande une confirmation avant chaque suppression, quel que soit le fichier concerné.

L’option -f force la suppression sans confirmation, même pour les fichiers en lecture seule. Cette option annule tout -i placé avant elle.

L’option -I propose un compromis. Elle demande une seule confirmation quand plus de trois fichiers sont concernés, ou lorsqu’un dossier est supprimé récursivement.

L’option -R supprime récursivement un dossier et tout ce qu’il contient. Elle implique automatiquement l’option -d qui autorise la suppression des dossiers.

L’option -r est strictement équivalente à -R. Les deux minuscules et majuscules produisent le même résultat.

L’option -v active le mode verbeux. Chaque fichier est affiché au moment où il est supprimé.

L’option -d autorise la suppression d’un dossier vide sans mode récursif.

L’option -x empêche rm de traverser les points de montage. Utile lorsque vous manipulez un disque externe monté à l’intérieur d’un autre volume.

Un détail à connaître concerne l’option -P héritée de FreeBSD. Elle prétendait écraser les fichiers avant suppression, mais la man page macOS indique clairement que cette option n’a plus aucun effet et est conservée uniquement pour compatibilité rétroactive.

Trois scénarios concrets pour prendre rm en main

Prenons trois situations que tout utilisateur macOS rencontre tôt ou tard.

Scénario 1 : nettoyer un dossier de captures d’écran obsolètes.

Vous avez capturé une trentaine d’écrans sur votre MacBook Pro pour illustrer un article de blog, et vous voulez repartir sur une base propre.

rm /Users/henrido/Documents/Captures/screenshot-2026-06-01.png

Ici, rm supprime uniquement le fichier nommé, immédiatement, sans confirmation.

Aucun retour dans le Terminal signifie que la commande a réussi.

Scénario 2 : supprimer un fichier avec confirmation.

Vous n’êtes plus tout à fait certain que ce fichier de travail est vraiment inutile. Vous voulez une dernière chance de dire non.

rm -i /Users/henrido/Documents/Projets/brouillon-final.pages

Le Terminal affiche alors une question comme remove brouillon-final.pages?.

Vous tapez y pour confirmer, ou n pour annuler.

Cette microseconde de réflexion évite bien des drames.

Scénario 3 : vider récursivement un dossier temporaire.

Vous avez créé un dossier de tests avec plusieurs sous-dossiers et vous voulez tout effacer.

rm -r /Users/henrido/Documents/Test-2026/

Cette commande supprime le dossier Test-2026 ainsi que l’intégralité de son contenu.

Si vous voulez conserver un dernier filet de sécurité, ajoutez -i :

rm -ri /Users/henrido/Documents/Test-2026/

Le Terminal vous demandera alors une confirmation pour chaque élément traversé, dossier par dossier, fichier par fichier.

Sur une arborescence volumineuse, cette approche devient rapidement fastidieuse. C’est là qu’entre en scène l’option -I en majuscule.

Une variante moins connue : l’option -I et le pipe avec find

Beaucoup d’utilisateurs découvrent tardivement l’option -I en majuscule, qui apporte un équilibre intéressant entre sécurité et confort.

Contrairement à -i qui demande une confirmation par fichier, l’option -I ne pose qu’une seule question, et uniquement dans deux cas précis : lorsque vous demandez la suppression de plus de trois fichiers en une seule commande, ou lorsque vous supprimez récursivement un dossier.

Cette option est particulièrement utile dans les scripts que vous voulez exécuter en semi-automatique.

Exemple concret sur un iMac utilisé pour la retouche photo :

rm -IR /Users/henrido/Pictures/Import-Brut/

Le Terminal affichera une seule question du type examine files in directory Import-Brut? (y/n).

Répondez y et la totalité disparaît sans nouvelle interruption.

Autre combinaison très puissante : rm chaîné avec la commande find via un pipe.

Cette approche permet de cibler des fichiers selon des critères précis, comme leur ancienneté ou leur extension.

Imaginons que vous souhaitiez supprimer tous les fichiers .DS_Store présents dans votre dossier Documents :

find /Users/henrido/Documents -name ".DS_Store" -type f -delete

Ici, find se charge à la fois de la recherche et de la suppression grâce à son option -delete.

Si vous préférez utiliser rm explicitement pour garder un contrôle plus lisible, la formulation suivante fonctionne aussi :

find /Users/henrido/Documents -name ".DS_Store" -type f -exec rm -v {} \;

L’option -v de rm affichera chaque fichier supprimé, ce qui vous permet de vérifier visuellement le résultat.

Attention à un point crucial. La commande rm ne passe jamais par la Corbeille macOS.

Contrairement au raccourci Command-Suppression du Finder, il n’existe aucun moyen de restaurer un fichier supprimé avec rm depuis l’interface graphique.

Une seule solution : disposer d’une sauvegarde Time Machine à jour ou d’une copie sur un service cloud comme iCloud Drive.

Le réflexe à installer une fois pour toutes

La commande rm est un couteau à double tranchant.

Elle brille par sa rapidité et sa précision, mais elle ne pardonne aucune erreur de saisie.

L’astuce la plus utile pour un utilisateur macOS soucieux de sa sérénité consiste à créer un alias permanent dans son fichier de configuration shell, pour que rm demande systématiquement une confirmation.

Cette approche sera l’objet d’un futur article dédié à la commande alias.

En attendant, prenez l’habitude de taper rm -i par défaut sur vos fichiers importants, et rm -I sur les opérations récursives.

Testez toujours vos commandes rm dans un dossier de test avant de les appliquer à vos données personnelles.

Le Terminal récompense la prudence par une efficacité redoutable, mais il ne fait aucun cadeau à la précipitation.

Vous avez une question, une idée ou une remarque ? Je serai ravi de vous lire ! ✉️ henrido@hdrapin.com

Comment « suspendre » une application avec le moniteur d’activité ?

FINDERICON 128X128

Avant d’explorer cette astuce, il est nécessaire d’expliquer un principe sur l’exécution des applications. Lorsque vous lancez une application, celle-ci est connue du système par son « PID » (ou « Process IDentifier » en Anglais).

Si nous voulons « interagir avec le système il faut utiliser ce PID et non le nom de l’application. Le numéro n’est pas constant, il varie suivant l’ordre d’exécution et d’une machine à une autre… Il est attribué par Mac OS X de façon arbitraire.

Comment récupérer ce PID ?

Le plus simple est de lancer le « Moniteur d’activité », dans l’onglet « Processeur », repérez la colonne « PID », le chiffre indiqué correspond à l’identifiant de l’application (première colonne).

Image 01

(Le moniteur d’activité avec l’onglet « Processeur « ) Une autre approche consiste à utiliser le Terminal et de récupérer le nom, la commande ressemble à ceci :

$ ps aux | grep iTunes

  • « PS » liste les processus (équivalent du moniteur d’activité)
  • « aux » ce sont les résultats que l’on veut obtenir.
  • « | « la barre latérale (ou le « pipe » en Anglais) permet d’envoyer le résultat de la commande précédente vers la commande « Grep ».
  • « grep » filtre le texte reçu pour ne garder que les lignes avec le mot « iTunes » Comme ceci :
    Image 02(le terminal avec la commande exécutée).

Ce qui nous intéresse est la seconde information juste après le nom de l’utilisateur, sur mon Mac, iTunes porte l’identifiant « 50384 ». Les pros du Terminal, ajouteront « awk » à la commande, seul le PID sera retourné comme ceci :

$ ps aux | grep itunes | awk '{print $2}'

Comment suspendre l’application ?

La commande la plus connue du Terminal est « KILL » c’est grâce à elle si vous pouvez « tuer » un processus ou une application.

Il existe un « argument » qui permet de « stopper » une application et faire en sorte qu’elle se redémarre, la commande est simple :

$ KILL –STOP 50384

En exécutant cette commande l’application iTunes est « stoppée », attention elle existe toujours mais ne fait plus rien. Pour la relancer et lui permettre de travailler, utiliser la commande suivante :

$ KILL –CONT 50384

Effectuez le test avec iTunes, lorsqu’il est en cours de lecture d’un morceau, il s’interrompt immédiatement.

Image 03

(dans le moniteur d’activité, iTunes utilise une portion du processeur)

Puis en exécutant la commande « KILL –STOP »

Image 04

(dans le moniteur d’activité, iTunes n’utilise plus le processeur)

Il existe une variante de la commande « KILL », il s’agit de « killall » qui n’a pas besoin du PID pour fonctionner mais utilisera le nom du processus, seul problème, le nom du processus n’est pas toujours celui de l’application.

Attention aux majuscules, elles sont importantes dans le Terminal. $ killall – STOP iTunes Et pour le redémarrer $ killall –CONT iTunes.

Une option « -c » permet de travailler sur une application avec un nom long et qui comprend des espace comme « App store » par exemple :

$ killall –STOP « App Store »

Cette astuce, permet de mettre en pause une application trop gourmande pour laisser aux autres applications l’utilisation du processeur, sans pour autant fermer l’application trop gourmande.

Henri Dominique Rapin

AppleScript :: Comment passer des données depuis le Terminal vers un script AppleScript ?

SEScriptEditorXComment passer des données depuis le Terminal vers un script AppleScript ?

 Lancer un script Applescript depuis le Terminal nécessite l’utilisation de la commande « osascript » suivi du chemin vers le fichier Applescript comme ceci :

 (Ligne de commande à placer dans le terminal)

$ osascript ~/Desktop/mon_script.scpt

 (Le Script mon_Script.scpt est placé sur le bureau)

 Maintenant nous souhaitons envoyer à mon script le contenu d’une variable.

 La première étape consiste à créer cette variable unix comme ceci. La variable « var » contiendra le texte entre guillemets :

 $ var=$(echo « Mon nom est Mac »)

La transmission de la variable se fait toujours en plaçant la variable entre guillemet (pour le texte) et en plaçant un  symbole « $  » avant le nom de la variable comme ceci :

$ osascript ~/Desktop/mon-script.scpt "$var"

Les deux commandes peuvent être associées dans une seule commande en les séparant par un point virgule « ; » pour former la commande suivant :

$ var=$(echo "Mon nom est Mac"); osascript ~/Desktop/mon-script.scpt "$var"

La seconde partie consiste à créer le script AppleScript et de collecter le contenu de la variable qui est passée, la structure du script est la suivante :

on run argv
       repeat with i from 1 to count of argv
              tell application "Finder"
                      activate
                      display dialog (item i of argv)
               end tell
       end repeat
end run
 

Il s’explique ainsi. L’exécution du script s’appuie sur des arguments (on run argv). La ligne suivante boucle sur le nombre d’arguments fournis. 

Image 01

Ensuite, le code entre les commandes « tell » et « end tell » est exécuté avec chaque argument.

Dans l’exemple présenté le Finder affiche le texte passé en argument, celui stocké dans la variable « argv ».

Vous pouvez utiliser cette astuce pour réaliser des opérations sur les fichiers AppleScript tout en plaçant la commande dans un script Shell.

Henri Dominique Rapin

Mac :: Comment afficher des messages lors de connexion (Shell, FTP, SSH)

Terminal.png

Comment afficher des messages lors de connexion (Shell, FTP, SSH) ?

Ajouter du texte affiché à la connexion au Shell, SSH et FTP c’est souvent un bon point de départ en ce qui concerne la sécurité. Cela fait parti des bonnes pratiques, informez vos utilisateurs des conditions d’utilisations, cela évite souvent les abus.

Pour le Shell

Le fichier de configuration à éditer pour le Shell est : /etc/motd

« Motd » signifie « message of the day », et il contient généralement des messages destinés aux utilisateurs concernant l’administration du système. Ce fichier est affiché avant l’ouverture du Shell par le process login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/motd

Pour lire le contenu du fichier :

$ sudo cat /etc/motd

Pour le serveur FTP :

Le fichier de configuration à éditer pour ftp est : /etc/ftpwelcome

Le fichier « ftpwelcome » verra son contenu affiché lors d’une connexion avant que soit affiché le login.

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/ftpwelcome

Pour lire le contenu du fichier :

$ sudo cat /etc/ftpwelcome

Pour SSH :

Le fichier de configuration à éditer pour le SHELL est : /etc/sshd_config

SSH affiche le contenu du fichier Banner : « /etc/banner »

Pour obtenir le chemin vers le fichier

$ sudo cat /etc/sshd_config | grep Banner

Pour ajouter simplement du texte à ce fichier :

$ sudo echo "Votre texte" >> /etc/banner

Pour lire le contenu du fichier :

$ sudo cat /etc/banner

Henri Dominique Rapin