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. 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
    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…