Voglio comprimere diverse immagini in un archivio .xz. Come lo faccio?
Voglio comprimere diverse immagini in un archivio .xz. Come lo faccio?
Risposte:
Anche se come dettagliato da Zacharee1 e da heemayl è di solito quello che vorrai fare, un altro modo è di inviare i dati tarati al comando:tar cJf archive files...xz
tar c files... | xz > archive.tar.xz
Poiché Ubuntu tarsupporta l' Jopzione, questo modo alternativo è particolarmente utile quando si desidera passare le opzioni a xz.
In questo esempio, ho tar e xzip alcuni file TIFF con un alto livello di compressione ( -9a xz) e output dettagliato ( va tar, -va xz):
ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
100 % 207.3 KiB / 290.0 KiB = 0.715
Questo potrebbe, ovviamente, essere fatto anche in due passaggi esplicitamente separati:
ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
Questi due modi non sono in realtà equivalenti nel modo in cui funzionano, anche se i .tar.xzfile che producono alla fine dovrebbero essere gli stessi (e lo erano, quando l'ho provato).
tarè reindirizzato ( |) all'input di xz. xzriceve tarquasi immediatamente i dati e non viene mai creato alcun file tar non compresso intermedio. Questo per dire che il primo modo è sostanzialmente equivalente atar cJf archive files... , ad eccezione degli argomenti aggiuntivi passati a xz.xzsecondo comando. ( xzelimina automaticamente il file originale al termine, a meno che non venga richiamato con -k/ --keep.)Per ulteriori letture, vedere questo post di Rafael van Horn e le pagine man tare xz.
tar -Jè quello di specificare la variabile di ambiente XZ_OPT, rendendo l'invocazione simile al seguente:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Usa tarcon -Jopzione:
tar -cvJf images.tar.xz /directory/containing/images/*
tar viene utilizzato per combinare più file in uno (archivio) e quindi è necessario comprimere l'archivio utilizzando l'algoritmo di compressione XZ.
Da man tar:
-c, --create
create a new archive
-v, --verbose
verbosely list files processed
-J, --xz
-f, --file ARCHIVE
use archive file or device ARCHIVE
Si noti inoltre che images.tar.xzverrà creato nella directory corrente, se si desidera salvarlo da qualche altra parte utilizzare /full/path/to/images.tar.xz.
xzè il più lento tra xz, gzip, bzip2a causa del suo rapporto di compressione più alto del lentezza others..the vale la pena di affrontare se si vuole di più la compressione ..
Utilizzare questo comando: tar cJf <archive.tar.xz> <files>. Separare i percorsi dei file con uno spazio.
-cfJ
-di fronte..da man tar: A function letter need not be prefixed with ``-''.. quindi tar cJfè assolutamente OK.
tar cJf, che darebbe all'OP un altro modo di farlo, dato che la mia risposta è già stata trattata tar --cvJfall'inizio ..