Menu

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
Afficher la suite 

2 réponses

Messages postés
36563
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
17 juin 2019
3609
0
Merci
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…

Commenter la réponse de zipe31
Messages postés
28841
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
14 juin 2019
6574
0
Merci
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
Commenter la réponse de mamiemando