Étiquette : rm

8 juillet 2019 /

Lorsque le nombre de fichiers dans un répertoire dépasse les 30000, cela peut constituer un problème.

[pastacode lang= »bash » manual= »find%20.%20-name%20’*.txt’%20-print%20%3E%2Ftmp%2Ffichiers_a_archiver%0Atar%20-cvzf%20fichiers_a_archiver.tar.gz%20–files-from%20%2Ftmp%2Ffichiers_a_archiver%0Afind%20.%20-name%20’*.txt’%20%7C%20xargs%20rm%20-v » message= »Voici les étapes à suivre pour mener à bien cette tâche » highlight= » » provider= »manual »/]

 

22 novembre 2015 /

J’ai rencontré cette petite erreur avec des répertoires contenant des millions de fichiers, qu’on vous demande de lister/supprimer, voici la solution la plus rapide.

find /chemin/repertoire -type f -name '*.log' | xargs rm -f

ou

find /chemin/repertoire -type f -name '*.log' -delete

ou encore :

find /chemin/repertoire -type f -name '*.log' -exec rm -rf {};

14 septembre 2015 /

Pour effacer tout le contenu d’un répertoire en épargnant un fichier:


cd repertoire
find . -maxdepth 1 -not -name fichier_a_conserver -exec rm -rf ‘{}’ \;

Pou effacer tout le contenu d’un dossier sauf les fichiers jpg:


cd dossier
find . -maxdepth 1 -not -name *.jpg -exec rm -rf ‘{}’ \;

3 août 2015 /

Pour supprimer tous les fichiers « .db » a partir du répertoire courant:

find . -type f -name "*db" -exec rm -f {} \;

Pour supprimer tous les fichiers « .db » à partir de la racine en demandant une confirmation:

find . -type f -name "*.db" -exec rm -i {} \;

Pour supprimer tous les repertoires se terminant par « db » à partir du répertoire courant:

find . -type d -name "*db" -exec rm -rf {} \;

28 juin 2015 /

Quand vous tombez sur un fichier commençant  par un tiret, si vous vous voulez le déplacer, le renommer ou le supprimer, il vous est impossible de le faire car celui-ci sera considérer comme une option.

Voici trois façon de contourner le problème:

Avec — devant le fichier:

mv -- -fichier

Par le numéro d’inode:

ls -i

find  . -inum "n° d'inode'" -exec mv {} nouveau_nom \;

Avec ./ devant le fichier:

mv ./--help toto