#1 Le 24/04/2013, à 16:26
- sacha971
[Résolu] Indication sur une commande
Bonjour,
En fait j'aimerais que vous m’éclaireriez sur cette commande :
find /etc -type f | xargs grep floppy 2> /dev/null
Dans un premier temps j'aimerais savoir ce que fait cette commande, puis dans un second temps que vous me précisiez le rôle de chaque terme de la commande.
Merci
Dernière modification par sacha971 (Le 24/04/2013, à 17:30)
Hors ligne
#2 Le 24/04/2013, à 16:32
- nesthib
Re : [Résolu] Indication sur une commande
La commande cherche (find) dans /etc tous les fichiers (type -f) et passe le retour via un pipe (|) à une seconde commande (xargs) qui va exécuter pour chaque terme (ou groupe de terme) retourné par la commande 1, la commande grep avec l'argument floppy, tout en redirigeant (>) la sortie d'erreur (2>) vers /dev/null.
En résumé, la commande cherche tous les fichiers dans /etc et pour chaque fichier cherche s'il contient un motif floppy. Le tout en masquant les erreurs.
Comme ça n'est pas la première fois que tu poses ce genre de questions pour ton BTS, je tiens à te rappeler que le but d'un exercice c'est de chercher par toi même. Si tu demandes une réponses toute faite à chaque fois tu ne progresseras pas et ça sera difficile le jour de l'examen
La prochaine fois, essaie d'y mettre un peu du tien et de montrer que tu cherches et que tu ne demandes pas seulement une réponse.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 24/04/2013, à 16:42
- sacha971
Re : [Résolu] Indication sur une commande
Merci de ta réponse nesthib, oui tu as raison, mais j'avoue que pour le coup, j'ai eu la fleme de chercher dans mon cours..... et puis c'est pas ma tasse de thé les commandes linux...
Hors ligne
#4 Le 24/04/2013, à 17:24
- Hizoka
Re : [Résolu] Indication sur une commande
find /etc -type f | xargs grep floppy 2> /dev/null
peut etre simplifié par :
grep "floppy" /etc/* 2>/dev/null
non ?
nesthib => je ne pige pas trop comment marche xargs, et quel est son interet dans ce genre de commande ?
merci
Dernière modification par Hizoka (Le 24/04/2013, à 17:25)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#5 Le 24/04/2013, à 17:36
- pingouinux
Re : [Résolu] Indication sur une commande
@Hizoka #4 :
Il faudrait faire :
shopt -s globstar
grep floppy /etc/**/* 2>/dev/null
Hors ligne
#6 Le 24/04/2013, à 17:52
- Hizoka
Re : [Résolu] Indication sur une commande
ou
grep -R "floppy" /etc/* 2>/dev/null
non ?
et pour ma question sur xargs ?
si je pige bien dans l'ex ci-dessus :
si find renvoie
/etc/fichier_bidon
xargs va permettre d'executer la commande :
grep floppy 2>/dev/null /etc/fichier_bidon
c'est ça ?
ca fait :
commande post xargs infos provenant du pipe
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#7 Le 24/04/2013, à 18:03
- pingouinux
Re : [Résolu] Indication sur une commande
Tu as raison sur les deux points.
Hors ligne
#8 Le 24/04/2013, à 18:10
- Hizoka
Re : [Résolu] Indication sur une commande
oki merci.
Ca vaut vraiment le coup de suivre les différents topics !
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#9 Le 24/04/2013, à 18:35
- tiramiseb
Re : [Résolu] Indication sur une commande
ou
grep -R "floppy" /etc/* 2>/dev/null
non ?
Là le grep va chercher dans tous les fichiers. Dans la commande d'origine, il ne cherche que dans les "regular files" : pas dans les "character devices", pas dans les "block devices", pas dans les liens symboliques...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#10 Le 24/04/2013, à 19:45
- Hizoka
Re : [Résolu] Indication sur une commande
bien vu.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#11 Le 24/04/2013, à 20:43
- nesthib
Re : [Résolu] Indication sur une commande
@Hizoka (encore un nouvel avatar ? ) :
En fait xargs est surtout utilisé pour décomposer des grosses tâches en sous-tâches. Quand tu écris :
commande … *
ton shell remplace « * » par la liste des fichiers correspondant à ton motif et appelle la commande.
S'il y a 10000 fichiers cela peut vite poser problème car il y a une limite à la taille de la chaîne d'arguments (en gros de l'ordre de « getconf ARG_MAX »). De plus certaines commandes fonctionnent bien avec un nombre raisonnable de fichiers en arguments mais vont planter s'il y en a de trop. Enfin tu peux vouloir décomposer une commande en groupes de commandes pour bénéficier de plusieurs cœurs/processeurs.
xargs permet de faire tout cela, mais est souvent réduit à des exemples tels que celui du message #1.
Essaie par exemple :
mkdir /tmp/test
cd /tmp/test
touch fichier{1..100}
find . | xargs echo ">>>"
find . | xargs -n 3 echo ">>>"
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#12 Le 24/04/2013, à 20:51
- Hizoka
Re : [Résolu] Indication sur une commande
1ere fois que je change d'avatar en 5ans (c'est l'icone de mon logiciel zenitor)
en effet pas mal le coup du -n 3
tu fais comment pour travailler sur plusieurs coeurs par exemple ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#13 Le 24/04/2013, à 21:08
- nesthib
Re : [Résolu] Indication sur une commande
-P max-procs
Run up to max-procs processes at a time; the default is 1. If max-procs is 0, xargs will run as many processes as possible at a time. Use the -n option with -P; otherwise chances are that only one exec will be done
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne