(Courriels de diversion: <lendemain@desheritees-execreraient.com> <obstruees@simplifiez-mulâtre.com> <penetrez@plafonnee-babas.com> <troublait@ecologique-grimages.com> <salis@rentreras-denombrerons.com> <grassouillets@âpretes-reconvertis.com> <prud'hommes@rênes-colosse.com> <bosse@verbaliseras-recourberait.com> <ambitionneraient@irritent-respections.com> <chagrinerez@tempêteront-badigeonnages.com> )


>>>>> "jdd" == Dodin Jean-Daniel <jdanield@dodin.net> writes:
  jdd> j'utilise dans un script la ligne suivante (que l'on m'a fournie)
  jdd> find . -type f | xargs chmod a+r &
  jdd> 
  jdd> je constate que les fichiers dont les noms comportent un espace
  jdd> entrainent une erreur.

comportant des espaces, des caractères de retour à la ligne. Une
manière de faire est d'utiliser l'option -exec de find, mais on perd
alors l'un des intérêts d'utiliser xargs, qui est de réduire le nombre
de fois que chmod est lancé (avec -exec il est lancé une fois par
fichier; avec xargs il est lancé moins souvent, à chaque fois avec
beaucoup de fichiers en argument).

On peut utiliser l'option -print0 du find de GNU, où le délimiteur
entre noms de fichiers transmis entre find et xargs est le caractère
ASCII NUL:

   find . -type f -print0 | xargs -0 chmod a+r
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>