[LUGOS] bash skripta za brisanje *.tmp

Ales Kosir ales.kosir at hermes.si
Sun Jan 9 12:11:33 CET 2005


Kolikor vem, je omejitev dolzine ukazne vrstice (oz velikosti okolja --
environemnt) v jedru Unixov (vkljucno z Linuxom), ne v ukazni lupini.
Odvisno od operacijskega sistema gre za omejitev ukaz execvp ali podobnega.


Xargs bi moral poskrbeti, da ukaz za njim ne dobi prevelikega stevila
argumentov. Kako? Xargs prebere podatke iz standardnega vhoda, ne iz ukazne
vrstice! Nato jih razdeli na take koscke, da je vsak cimvecji, a ne preseze
dopustne velikosti okolja, ter te koscke da naslednjemu ukazu. 

Zato ne verjamem, da bi lahko xargs javil, da jih ima prevec, ce nismo morda
napacno naredili cesa takega, kot je na primer: xargs touch * v imeniku,
kjer je veliko stevilo datotek. Zvezdica se razresi prej, ko ukaz xargs dobi
parametre, zato ta ne more narediti nic pametnega, saj se dolzina prekoraci
ze pred njim. Namesto takega ukaza moramo napisati ls | xargs touch, kjer je
ocitno, da ne razresujemo zvezdice.

Lep pozdrav,
Ales

-----Original Message-----
From: Andrej Lajovic [mailto:andrej.lajovic at guest.arnes.si] 
Sent: 9. januar 2005 1:10
To: Glavni dopisni seznam LUGOSa
Subject: Re: [LUGOS] bash skripta za brisanje *.tmp

On Sat, 8 Jan 2005, Matija Grabnar wrote:

> Nisem se naletel na primer, kjer bi xargs podal prevec parametrov
> svoji komandi (da bi bil arg list too long).

S čim je število argumentov pravzaprav omejeno? Meni se je enkrat že 
zgodilo, da jih je bilo preveč, ampak ni šlo za xargs, temveč za nekaj v 
stilu "ls *.jpg". V tem primeru bi bila lahko omejitev v bashu.

Še eno stvar sem izbrskal zdajle: xargs razume vrstico samo z znakom '_' 
kot EOF, kar mu lahko preprečiš s stikalom '--eof'. V našem primeru gre 
sicer tudi brez tega, ker find vsako ime datoteke začne s potjo, pa čeprav 
gre samo za './', tako da je nemogoče dobiti samo '_' v vrstici.

lp, andrej
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3151 bytes
Desc: not available
Url : http://liste2.lugos.si/pipermail/lugos-list/attachments/20050109/e79239b5/smime.bin


More information about the lugos-list mailing list