Demande d'information sur une commande linux

Résolu
zitouna -  
mamiemando Messages postés 33772 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
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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