Proba o radu s prikazem
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Sobota Leden 26 22:30:52 CET 2002
Tak uz je tu zase muj oblibeny pissing contest "find + rm stokrat jinak a
pokazde nejak blbe"! :)
On Wed, 23 Jan 2002, Martin Mačok wrote:
> On Wed, Jan 23, 2002 at 05:31:15PM +0100, Milan Roubal wrote:
> > # find /tmp/ | grep -e "/tmp/[^/]*/test_test" | rm
[...]
> b) i kdyby bral (napr. pouzitim xargs), tak je to spatne, vyzkousejte
> si to s adresari/soubory, ktere maji v nazvu mezery
V pripade xargs bude asi problem s nazvy obsahujicimi konce radek, ze?
(S mezerami a dalsimi bilymi znaky by byl problem u ``.)
On Wed, 23 Jan 2002, iko wrote:
> find /tmp/ | grep -e "/tmp/[^/]*/test_test" | while read abc; do rm
"$abc";
> done
Nefunguje spravne na jmenech obsahujicich konce radek. A aby to bylo jeste
zajimavejsi, bude to blbnout na jmenech koncicich backslashem (viz -r
u read).
Jinak je samozrejme spatne i ten grep: napriklad by doslo ke smazani i
souboru /tmp/abc/test_test1 a /tmp/abc/tmp/efg/test_test atd. Spravne by
tam u toho grepu melo byt ^ na zacatku a $ u konce. Ale take by se dal
grep vynechat uplne a dat misto toho -regex k findu (je-li to find od
GNU) (pokud by se nenahradil kombinaci -maxdepth, -mindepth a -name, jak
bylo naznacovano jinde).
On 24 Jan 2002 uhlar na fantomas.sk wrote:
> (jedine co v unix systeme nesmie byt vb mene subory je \0 a '/')
To neni tak uplne pravda: implementace unixovych os jsou sice vesmes
velice tolerantni a opravdu akceptuji cokoli krome zminenych dvou znaku,
ale povinna je podle standardu podpora jen urcite male podmnoziny ASCII
(viz napr. Single Unix Specification v2).
Mimochodem je zajimave, ze puvodni zadani pozadovalo vymazani urciteho
souboru ze vsech domovskych adresaru, ale nejak vsichni tuto cast odsunuli
stranou (a treba vice ci mene mlcky predpokladali, ze jsou to /home/*).
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux