Příliš dlouhý seznam argumentů
Dan Lukes
dan at obluda.cz
Wed Jun 25 09:37:36 CEST 2008
Jaroslav Votruba wrote:
> potrebuji vymazat miliony logu z adresare, nicmene je jich tam asi moc a
> odpalkuje me to. jak to poresit?
>
> [root at mfgpro rdt1]# find *.log -atime +7 -exec rm -f {} \;
> bash: /usr/bin/find: Příliš dlouhý seznam argumentů
To je proto, ze jakmile je tam primo napsano *.log, tak tenhle zapis uz
shell (tedy driv, nez se vubec spusti find) nahradi seznamem souboru,
ktere vyhovuji patternu. A tim prekroci maximalni delku prikazove radku.
Pepovo
find . -name '*.log' -atime +7 | xargs rm -f
tuhle vadu nema, protoze '*.log' je v apostrofech a tudiz ho shell
neexpanduje, dostane se nezmeneny az k findu a ten uz si to vyresi sam.
Snad jen - ja bych misto -exec nebo xargs napsal proste:
find . -name '*.log' -atime +7 -delete
Tim se soucasne resi otazka bezpecnosti vuci souborum, ktere v nazvu
obsahuji "divne znaky" jako jsou mezery nebo konce radku.
Teda, ja bych to napsal jeste jinak:
find . -name '*.log' -ctime +7 -delete
Pripada mi zeby se LOGy mazaly podle casu, kdy k nim nekdo naposledy
pristoupil - logictejsi je mazat podle data vytvoreni nebo jeste tak
posledni modifikace (-mtime) ...
Dan
More information about the Users-l
mailing list