Demande d'information sur une commande linux

Résolu
Bonjour,

J'aimerais savoir la signification de cette commande :

find /media/user/volume xx -print0 | xargs -0 ls -l


Configuration: Linux / Opera Next 45.0.2552.898

2 réponses

  1. Contributeur
    Salut,

    Tel quel la commande n'a aucun intérêt ;-(

    Mais pour ta gouverne un simple
    man find
    et
    man xargs
    devraient t'aider à en comprendre le sens…

    0
    1. Modérateur
      Hello

      Comme dit zipe31, commence par lire le manuel lié à chaque commande impliquée (ici
      find
      ,
      xargs
      , et
      ls
      ).

      Une fois que tu t'es aperçue que la commande ne peut pas endommager ton système, une bonne manière de comprendre ce qu'elle fait est de tester.

      Dans ton cas présent, tu peux comparer les commandes suivantes :

      find /
      find /home
      find /home -print0
      ls
      find /home -print0 | xargs -0 ls -l


      Dernière notion importante, le caractère
      |
      (tube en français, pipe en anglais -se prononce païpe), qui permet de rediriger le résultat d'une commande dans une autre. Tu peux par exemple comparer :

      ls
      ls | xargs
      ls | xargs -0


      Dans ton cas, ta commande liste le contenu de deux répertoires
      /media/user/volume
      et
      xx
      , et affiche les droits des fichiers ainsi listés.

      On pourrait croire que la commande peut s'écrire plus simplement, par exemple :

      find /media/user/volume xx | xargs ls -l 


      ... ou en encore :

      for x in $(find /media/user/volume xx); do ls -l $x; done 


      ... mais l'intérêt de la commande telle que tu l'as écrite et qu'elle permet de gérer correctement les noms de dossiers comportant des espaces.

      Bonne chance
      0