Portál AbcLinuxu, 10. května 2025 06:46

Dotaz: tar :"argument list too long"

2.5.2006 14:43 vlado
tar :"argument list too long"
Přečteno: 191×
Odpovědět | Admin
caute.

mam taky problem... potrebujem sTAR-ovat velke mnozstvo suborov do jedneho, ale ked dam tar -cvf blablablablabla, tak mi vyhodi:"argument list too long" skusal som to aj cez ls|xargs tar -cvf blablablabla ,ale v tomto pripade sa mi tvari ze taruje vsetky subory, no ked vysledny subor otvorim, tak tam nie su vsetky subory, ale len poslednych 91 suborov. neviete mi poradit? najlepsie ako vypnut limit pre tar.

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

Odpovědi

2.5.2006 14:50 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Odpovědět | | Sbalit | Link | Blokovat | Admin
  ls > list
  tar -cvf x.tar -T list
nebo elegantněji
  tar -cvf x.tar -T <(ls)
2.5.2006 14:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Pro jistotu tři poznámky: 1. Samozřejmě si v první variantě ten seznam udělejte v jiném adresáři. 2. Nefunguje, pokud byste měl někde ve jménu souboru linefeed. 3. Předpokládám, že ve skutečnosti nechcete archivovat celý obsah aktuálního adresáře, jinak byste použil něco na způsob 'tar -cvf ../x.tar .'.
2.5.2006 15:25 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Vypadá to, že tohle by mělo fungovat stoprocentně
tar -cvf archiv.tar -T <(find . -mindepth 1 -maxdepth 1 -print0)
tar napíše, že "file name read contains nul character" a zdá se, že nulu pak považuje za separátor, takže lze úspěšně zabalit (i rozbalit) soubor s linefeed v názvu.
2.5.2006 15:31 vlado
Rozbalit Rozbalit vše Re: tar :"argument list too long"
super. diky rychle, strucne, vystizne a funkcne riesenie. pomohlo to .
2.5.2006 14:54 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus zatarovat adresář, nikoli jeho obsah. Tedy
tar -cvf archiv.tar název_adresáře
Pomůže to? Jo a nikdy nepoužívej ls | něco
2.5.2006 15:02 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Aha, sorry, napsali jsme to současně (tohle se mi stává furt).
2.5.2006 18:48 Marble
Rozbalit Rozbalit vše Re: tar :"argument list too long"
Odpovědět | | Sbalit | Link | Blokovat | Admin
xargs funguje, ale je potřeba uvědomit si, co přesně dělá. Spouští zadaný příkaz několikrát, pokaždé jen s tolika argumenty, kolik se vejde "na příkazovou řádku". Takže tar se spustí několikrát a pokaždé přepíše výstupní soubor a nakonec zůstane výstup z posledního běhu taru. Z toho už také plyne řešení -- použít místo tar -c (vytvořit nový archiv) tar -A (připojit k existujícímu archivu).

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.