Portál AbcLinuxu, 11. května 2025 10:43
potřebuji zabalit dva soubory a rozbalit a to vše bez použití příkazu cd.
Zkusil jsem:
tar -pczf out.tar.gz path/file1 path/file2
zabalí do souboru včetně složek "nahoře"-> nežádoucí...
gzip -c path/file1 path/file2 > a.gz
nebo
gzip -c path/file1 > a.gz
gzip -c path/file2 > a.gz
gzip -d a.gz
Poslední příkaz smaže původní soubory (asi to dělá přepínáč -c ale neumím jej vhodně použít- pouští výstup na obrazovku, tj. nerozbaluje)
Pokud pominu, že smaže soubory, tak rozbalí cosi co se jmenuje a a nevím jak to rozbalovat dál :(
oprava:
gzip -c path/file2 >> a.gz
problém zůstává...
tar -pczf out.tar.gz -C path file1 file2
tar -C path1 -cf archive.tar file tar -C path2 -rf archive.tar file tar -C path3 -rf archive.tar file ...Rozbalování analogicky. Jmenuje-li se pak kvůli tomuto schématu několik souborů v archivu identicky, je zapotřebí použít --occurrence. Normálnější by bylo zabalit to i s cestou, což nebrání rozbalování jednotlivých souborů kamkoli jinam.
tar
em nebo jiným nástrojem, který více souborů spojí do jednoho. Jinak ta druhá varianta je napsaná špatně i z pohledu shellu, protože přesměrování >
cílový soubor přepíše. Pokud byste chtěl přidávat, musel byste použít >>
.
S tar
em můžete použít parametr -C
tar -pczf out.tar.gz -C path file1 file2Nebo můžete při rozbalování použít parametr
--strip-components
tar -pczf out.tar.gz path/file1 path/file2 tar -xzf out.tar.gz --strip-components 1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.