Demande d'information sur une commande linux

Résolu
zitouna -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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