Come faccio a creare il file tar.7z dalla riga di comando?


21

Vorrei comprimere i compiti dell'anno scorso. Come posso tarare e comprimere l'intera cartella dalla riga di comando di Ubuntu (non ho la GUI).

Risposte:


25

Utilizzare il seguente one-liner:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

Potenziale fonte: man 7z.
Wilf,

9

Leggi man tar. Offre:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

Oppure, se nessuno di questi è giusto per te e hai un programma di compressione che legge stdin, potresti:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

Si noti che sto scrivendo l'output in un posto diverso da $HOME(il backup in una directory di cui si esegue il backup porta a una crescita dei file senza vincoli).

Oppure, potresti leggere man 7z- sembra che potresti fare

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 

7

E ' non è una buona idea comprimere direttamente con 7z spcially su Unix / Linux Sistemi: 7z non conserva le autorizzazioni e informazioni o utente / gruppo . Quindi: prima tar, quindi comprimere.

Come riportato sulla pagina wiki di 7zip su http://en.wikipedia.org/wiki/7z#Limitations :

limitazioni

Il formato 7z non memorizza le autorizzazioni del filesystem (come le autorizzazioni UNIX proprietario / gruppo o ACL NTFS), e quindi può essere inappropriato per scopi di backup / archiviazione. Una soluzione alternativa a sistemi simili a UNIX per questo consiste nel convertire i dati in un bit bitstream tar prima di comprimere con 7z.


5

Suggerirei di usare:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

per un notevole aumento della velocità.

Ha il vantaggio di usare lzma2 ( -m0=lzma2) (che utilizza il numero massimo di core disponibili sul sistema e il preset "Compressione rapida" ( -mx=3), che è sostanzialmente veloce e abbastanza buono. Nota che LZMA2 non utilizza solo tutti i core in compressione, ma anche su decompressione.


1
Alla fine, con la tua risposta, ho trovato quello che cercavo: la capacità di utilizzare tutti i processori sull'attività.
Lonnie Best

0

Dovresti usare tar -Jchf <Filename>.tar.xz <Files to compress>

Il -Jutilizza l'algoritmo di compressione XZ, lo stesso come 7zip

-ccrea un nuovo file -hconserva simlink -fimposta il nome file

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.