TUTOS.EU

Commande pour effacer un fichier ou un répertoire sous Linux

Comment effacer un fichier ou répertoire en ligne de commande sous Linux

Pour effacer un fichier ou plusieurs fichiers sous Linux, la commande à utiliser est rm

Exemple :

sudo rm /chemin/fichier1 /chemin/fichier2 /chemin/fichier3
Lien vers le fichier : cliquez ici Copier le code

Si vous voulez supprimer tous les fichiers d'un répertoire, allez dedans et la commande sera :

rm *
Lien vers le fichier : cliquez ici Copier le code

Pour effacer un répertoire c'est la même commande à la différence que l'on va ajouter l'option -R pour agir de façon récursive, cad que l'on effacera également les sous-répertoires contenu dans le répertoire à effacer :

sudo rm -r /chemin/dossier1 /chemin/dossier2 /chemin/dossier3
Lien vers le fichier : cliquez ici Copier le code

Si vous voulez effacer des fichiers ou répertoires qui se trouvent dans des sous-répertoires, il faut passer au préalable par la commande find
L'aide de la commande find se trouve par exemple sur https://linux.die.net/man/1/find

Par exemple si vous voulez effacer tous les répertoires qui commencent par temp

find /mon_repertoire_de_depart -type d -name temp* -exec rm -rf '{}' \;
Lien vers le fichier : cliquez ici Copier le code

Pour effacer juste les fichiers qui commencent par temp

find /mon_repertoire_de_depart -name temp* -delete
Lien vers le fichier : cliquez ici Copier le code

Pour effacer des fichiers qui commencent par localhost.2023 et qui se terminent par .log
Attention find retourne le chemin complet, donc vous devez mettre .* au début de vitre regex pour prendre en compte le chemin d'accès

find /chemin/vers/repertoire -type f -regextype egrep -regex '.*localhost.2023.*.log' -exec rm {} \;
Lien vers le fichier : cliquez ici Copier le code

Pour effacer les fichier modifiés il y a plus d'un an dans /opt/kafka/kafka/logs sans aller au delà du premier répertoire

find /opt/kafka/kafka/logs/ -maxdepth 1 -mtime +360 -delete
Lien vers le fichier : cliquez ici Copier le code

Notez que l'on peut faire un -print au lieu d'un -delete et compléter avec du regex

find /opt/kafka/kafka/logs/ -maxdepth 1 -regextype egrep -regex ".*/[a-z\-]+.log.[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}$" -mtime +2 -delete
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
Doc.ubuntu-fr.orgComment supprimer un fichier (ou un dossier) ?
Doc.ubuntu-fr.org : rmLes commandes de base en console : rm

2