Forum Astuces.divers [Terminal] Virer des fichiers superflus
Il suffit de lancer la commande find /dossier \( -name "type_de_fichier" -or -name "autre_type" \) -exec rm -rfv {} \; En utilisant crond, on peut ainsi nettoyer régulièrement son disque en otant des core ou backups obsolètes.
# Re: Virer des fichiers superflus
Posté par François B. . Évalué à 1.
De plus, pour ne pas être gêné par les espaces dans les noms de fichiers, on peut séparer les noms par un caractère nul au lieu d'un espace (couple d'options -print0 et -0 pour find et xargs).
Ma commande ressemble donc à :
find /dossier -type f \( -name "foo" -or -name "bar" \) -print0 | xargs -0 rm -rfv
Enfin, je voudrais pointer les options -iname et -lname de find qui permettent respectivement de faire correspondre le nom de fichier avec une casse non significative et de faire correspondre le nom du fichier pointé par un lien symbolique (-ilname combine les 2). Exemple d'utilisation de -lname pour savoir quand /etc/init.d/iptables est appelé par init :
find /etc -type l -path '/etc/rc?.d/*' -lname '*/iptables'
Note : les options que je donne ne sont disponibles que pour les versions GNU de find...
[^] # Re: Virer des fichiers superflus
Posté par Anonyme . Évalué à 1.
[^] # Re: Virer des fichiers superflus
Posté par Fabimaru (site web personnel) . Évalué à 1.
[^] # Re: Virer des fichiers superflus
Posté par rgill . Évalué à 2.
je me suis toujours emmerdé lorsque le nombre de fichiers était trop grand (pour rm ou d'autres commandes d'ailleurs). On pense à aller voir les man pour l'uilisation générale des commandes, mais des problèmes comme ça, on pense <2nd>qu'ils n'ont pas prévu ces crétins</2nd degre>, alors qu'il suffit de chercher un peu
Merci pour ce complément d'astuce vraiment intéressant
PS: je suis nouveau ici, et je vois des -1, des scores qui grimpent. Comment on met +/- à un commentaire ?
[^] # Re: Virer des fichiers superflus
Posté par Salagnac . Évalué à 1.
Mais en gros il suffit d'attendre (et de faire des commentaires pertinents)
je te renvoie à http://linuxfr.org/~Salagnac/(...) où sont relatées mes aventures de bleu-bite bleu foncé (maintenant je peux voter, je suis donc bleu-bite bleu clair, arf)
bon courage !
[^] # Re: Virer des fichiers superflus
Posté par rgill . Évalué à -1.
# Re: Virer des fichiers superflus
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 1.
# Re: Virer des fichiers superflus
Posté par gndl (site web personnel) . Évalué à 1.
[^] # Re: Virer des fichiers superflus
Posté par Salagnac . Évalué à 1.
fonction_pas_recursive()
{
rm*.o
}
fonction_recursive()
{
for nom in `ls` ; do
# aller dans tous les répertoires mais pas dans les liens symboliques
if [ -d "$nom" -a ! -L "$nom" ] ; then
cd "$nom"
# le premier paramètre (donc $1) de fonction_recursive est le
# nom de la fonction (ou du script, ou de la commande...) qui doit
# être exécutée dans chaque répertoire
$1
# et, comme fonction_recursive est récursive, elle s'appelle elle-même.
fonction_recursive $1
cd ..
fi
done
}
et tu appelles gentiment "fonction_recursive fonction_pas_recursive" dans ton script
(PS: desole' pour l'absence d'indentation. Le fait que <pre> bugge sur DLFP est tres amusant a mon gout)
[^] # Re: Virer des fichiers superflus
Posté par vic (site web personnel) . Évalué à 1.
Pour faire ce que tu dis il suffit de faire :
find -name "*.o" -exec rm -f {} \;
Pour exécuter une commande sur tous les répertoires:
find -type d -exec ./plop {} \;
etc ....
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.