Xargs: Difference between revisions
From ICO wiki
Jump to navigationJump to search
Line 30: | Line 30: | ||
===Määratud laiendige failide kustutamine avatud kataloogis=== | ===Määratud laiendige failide kustutamine avatud kataloogis=== | ||
$ find . -name *.log -print0 | xargs -0 rm | $ '''find''' . -name *.log -print0 | '''xargs''' -0 rm | ||
'''find''' võtmete selgitus: | '''find''' võtmete selgitus: |
Revision as of 22:49, 21 June 2011
Artikkel on pooleli!
Sissejuhatus
xargs käsku kasutatakse juhtudeks, kus on vaja jaotada mingi käsu tegevused väiksemateks gruppideks. xargs sai loodud probleemi tõttu, kus käsul on liiga palju argumente ning kernel (kuni versioonini 2.6.23) ei ole võimeline käivitama käsku.
- xargs loeb argumente standard sisendist
- xargs standard sisendi argumendid on piiritletud tühikutega või reavahetustega
- peale standard sisendi lugemist käivitatakse soovitud käsk üks või mitu korda standard sisendist saadud argumentidega.
Näide, kus käsu käivitamine ebaõnnestub liigsete argumentide hulga tõttu:
$ mv * /mingi/teine/kataloog/ bash: /bin/mv: Argument list too long
Süntaks
<argumendid> | xargs <võtmed> <käsk <võtmed>>
Näited
Argumentide väljastamine kolme kaupa
$ echo 1 2 3 4 5 6 7 8 | xargs -n 3
-n 3 määrab, et käsu standard sisendi tulemust kuvatakse kolme kaupa
$ echo 1 2 3 4 5 6 7 8 | xargs -n 3 1 2 3 4 5 6 7 8
Määratud laiendige failide kustutamine avatud kataloogis
$ find . -name *.log -print0 | xargs -0 rm
find võtmete selgitus:
- . - otsitakse faile avatud kataloogis
- -name *.log - failid on mistahes nimega kuid laiendiga .log
- -print0 - leitud argumendid eraldatakse null karakteriga
xargs võtmete selgitus:
- -0 määrab, et käsu standard sisendi tulemust eraldaja ei ole tühik ega reavahetus vaid null karakter. Vajalik selleks, kui faili nimed sisaldavad tühikuid või reavahetusi.
5-6tk, Kuidas kustutada sadatuhat faili?
Kokkuvõte
(probleem pole nii õudne, kuid eksisteerib)
Allikad/Allikad
- http://en.wikipedia.org/wiki/Xargs
- http://www.gnu.org/software/coreutils/faq/coreutils-faq.html#Argument-list-too-long
- http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/
- http://www.linuxtutorialblog.com/post/tutorial-the-best-tips-tricks-for-bash
- http://www.softpanorama.org/Tools/xargs.shtml
Autor
Marko Valing, AK31, 2010/2011