Portál AbcLinuxu, 2. června 2024 19:34


Dotaz: tar /path/*/path/*.*

29.12.2020 09:23 maros
tar /path/*/path/*.*
Přečteno: 394×
Odpovědět | Admin
Je mozne pouzit tar na zalohovanie stromu /path/*/path/*.* ?
Teda:
/path/aaa/path/*.*
/path/bbb/path/*.*
...
/path/zzz/path/*.*

Pricom aaa, bbb, ..., zzz su rozne adresare resp. ich mena nie su ziadna postupnost.

Ř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

Řešení 1× (Brilantní modř)
29.12.2020 09:46 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Brilantní modř avatar 29.12.2020 16:08 Brilantní modř | skóre: 14
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*

Ano, a doplním, že to, co tar zpracuje, lze snadno zjistit použitím příkazu ls se stejnou expanzní cestou v souborovém systému. A bez zaměňování příkazu za ls v Bashi také klávesovou zkratkou C-x *, která způsobí expanzi, nebo klávesovou zkratkou C-x g, která pouze vypíše, na co by se expandovalo.

Řešení 1× (Brilantní modř)
Josef Kufner avatar 29.12.2020 16:22 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
Odpovědět | | Sbalit | Link | Blokovat | Admin
man tar:
      -T, --files-from=FILE
              Get names to extract or create from FILE.
Takže:
find ... | tar ... -T -
Hello world ! Segmentation fault (core dumped)
30.12.2020 09:00 maros
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
Bohuzial ide o appliance, kde nie je priamy pristup do CLI.
Mam odskusane, ze pajpy nefunguju.
Preto sa pytam, ci to tar podporuje out-of-the-box.
Brilantní modř avatar 30.12.2020 09:39 Brilantní modř | skóre: 14
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*

ls -1 /path/*/path/*.* > list.txt

tar --files-from=list.txt ...
nebo
tar --files-from=list.txt --verbatim-files-from ...

To výše zahrne pouze uvedené soubory. To níže vyloučí uvedené soubory:

tar--exclude=PATTERN, --exclude-ignore=FILE, --exclude-ignore-recursive=FILE, --exclude-from=FILE.

Viz odpovědi v komentářích níže (4).

Josef Kufner avatar 30.12.2020 15:27 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
To tar nejspíš neumí. Má nějaké ty exclude parametry, ale hvězdičky expanduje shell, nikoliv tar.
Hello world ! Segmentation fault (core dumped)
Řešení 1× (Brilantní modř)
29.12.2020 21:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
Odpovědět | | Sbalit | Link | Blokovat | Admin
Expanzi zástupných znaků provádí přímo shell. Nezáleží tedy na aplikaci, kterou používáte (zda je to tar nebo cokoli jiného), ale na použitém shellu. Dávejte pozor na to, kolik souborů tomu výrazu vyhoví. Aplikaci se předává až výsledek po expanzi, který může být příliš dlouhý. Pak se používá buď xargs, nebo se seznam souborů vypíše do souboru a ten se předá jako zdroj souborů pro aplikaci (pokud to aplikace umí – tar ano).
Josef Kufner avatar 30.12.2020 00:19 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: tar /path/*/path/*.*
xargs v kombinaci s tarem není zrovna dobrý nápad. Může to mít celkem nehezké vedlejší účinky.
Hello world ! Segmentation fault (core dumped)

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.