$ find /dir|xargs commande
-> Problème avec les retours charriot dans les noms de fichiers.
Si /dir contient un très grand nombre de fichiers, tu auras surtout « line too long » pour ta commande, à moins d’utiliser l’option -n nombre_d_arguments de xargs pour lancer une commande tous les nombre_d_arguments.
$ find /dir -print0|xargs -0 commande
-> Gère correctement tous les noms de fichiers.
Et tu n’as jamais de « line too long » ?
Pour ma part, j’utilise gnéralement
$ find /dir -exec commande {} \;
Je n’ai jamais eu de problème avec.
Cela dit, ça lance une commande par fichier, mais tu peux placer l’argument où tu veux dans la commande, voire le répéter (avec le find de GNU, tous ne le supportent pas) ; par exemple :
$ find . -type f -exec cmp {} /backup_du_repertoire_courant/{} \;
(faire attention au répertoire de base choisi : ça ne préviendra pas s’il manque un fichier dans le répertoire courant par rapport à /backup_du_repertoire_courant).
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone
[^] # Re: Il fallait y penser
Posté par Arthur Accroc . En réponse à la dépêche ack 1.96 — mieux que grep. Évalué à 1.
Si /dir contient un très grand nombre de fichiers, tu auras surtout « line too long » pour ta commande, à moins d’utiliser l’option -n nombre_d_arguments de xargs pour lancer une commande tous les nombre_d_arguments.
Et tu n’as jamais de « line too long » ?
Pour ma part, j’utilise gnéralement
$ find /dir -exec commande {} \;
Je n’ai jamais eu de problème avec.
Cela dit, ça lance une commande par fichier, mais tu peux placer l’argument où tu veux dans la commande, voire le répéter (avec le find de GNU, tous ne le supportent pas) ; par exemple :
$ find . -type f -exec cmp {} /backup_du_repertoire_courant/{} \;
(faire attention au répertoire de base choisi : ça ne préviendra pas s’il manque un fichier dans le répertoire courant par rapport à /backup_du_repertoire_courant).
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone