Portál AbcLinuxu, 18. května 2025 00:14

Dotaz: find a tar

8.7.2012 21:14 aserwr
find a tar
Přečteno: 217×
Odpovědět | Admin
Trapim sa s problemom, ze potrebujem najst subor ktory je vacsi ako 1GB a zaroven je najnovsi zo vsetkych v danom adresari. Nasledne tento subor (je to tar.gz) potrebujem rozbalit do priecinka /data/. Mam to z 25% spravene, ze sa mi vyhlada najnovsi subor ls -lrt | awk '/mnt/fs/files/ { f=$NF };END{ print f }' a ten mi vypise najnovsi subor. Neviem ale ako to obmedzit na kontrolu velkosti a nasledne ten vypisany subor preniest do prikazu tar. Poradi niekto ? Dakujem.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.7.2012 22:49 Ash | skóre: 53
Rozbalit Rozbalit vše Re: find a tar
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejnovější z alespoň gigabajtových souborů zatarujete snadno:
find . -maxdepth 1 -type f -size +1G -printf "%T@ %f\n" | sort -n | tail -n 1 | cut -d" " -f 2 | xargs tar cvzf thebigfile.tgz
P.S. Předpokládám, že nehledáte nejnovější ze všech souborů, který je současně alespoň gigový.
8.7.2012 22:53 Ash | skóre: 53
Rozbalit Rozbalit vše Re: find a tar
Aha, vy ho potřebujete rozbalit :) V tom případě upravte argumenty xargs takto:
xargs tar xvzf
8.7.2012 22:58 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: find a tar
Ještě parametr -C /data/ pro tar.
9.7.2012 00:29 aserwr
Rozbalit Rozbalit vše Re: find a tar
find . -maxdepth 1 -type f -size +1G -printf "%T@ %f\n" | sort -n | tail -n 1 | cut -d" " -f 2 | xargs tar xvzf thebigfile.tgz -C /data/

takto?

dakujem.
9.7.2012 00:35 aserwr
Rozbalit Rozbalit vše Re: find a tar
Akurat ze tie subory maju nahodne nazvy a vobec sa nevola thebigfile.tgz ale XYZ.tgz :))
9.7.2012 01:02 Ash | skóre: 53
Rozbalit Rozbalit vše Re: find a tar
Pokud se má nalezený soubor rozbalovat, tak jeho jméno samozřejmě v příkazové řádce být nemůže, protože v době zadávání příkazu ještě není známo :) Viz níže.
9.7.2012 00:59 Ash | skóre: 53
Rozbalit Rozbalit vše Re: find a tar
Nie, takto:
find . -maxdepth 1 -type f -size +1G -printf "%T@ %f\n" | sort -n | tail -n 1 | cut -d" " -f 2 | xargs tar -C /data/ -xvzf

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.