¿Cómo creo el archivo tar.7z desde la línea de comando?

21

Me gustaría cerrar mi tarea del año pasado. ¿Cómo tar y comprimir toda la carpeta desde la línea de comandos Ubuntu (no tengo GUI).

alfanumérico74
fuente

Respuestas:

25

Use el siguiente one-liner:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
Ortang
fuente
Fuente potencial: man 7z.
Wilf
9

Leer man tar. Ofrece:

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

O, si ninguno de esos es el adecuado para usted, y tiene un programa de compresión que lee stdin, podría:

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

Tenga en cuenta que estoy escribiendo la salida en otro lugar que no sea $HOME(hacer una copia de seguridad en un directorio del que está haciendo una copia de seguridad conduce a un crecimiento de archivo sin restricciones).

O podrías leer man 7z, parece que podrías hacer

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

Es no es una buena idea comprimir directamente con 7z Spcially En sistemas UNIX / Linux: 7z no conserva permisos y o información de usuario / grupo . Entonces: primero alquitrán, y luego comprimir.

Como se informó en la página wiki de 7zip en http://en.wikipedia.org/wiki/7z#Limitations :

Limitaciones

El formato 7z no almacena los permisos del sistema de archivos (como los permisos de grupo / propietario de UNIX o las ACL de NTFS) y, por lo tanto, puede ser inapropiado para fines de copia de seguridad / archivo. Una solución alternativa en sistemas similares a UNIX para esto es convertir los datos a un flujo de bits de alquitrán antes de comprimir con 7z.

Giuseppe Curto
fuente
5

Te sugiero que uses:

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

para un aumento dramático de la velocidad.

Tiene la ventaja de usar lzma2 ( -m0=lzma2) (que utiliza los núcleos máximos disponibles en su sistema y el valor predeterminado "Compresión rápida" -mx=3), que es básicamente lo suficientemente rápido y bueno. Tenga en cuenta que LZMA2 no solo utiliza todos los núcleos en la compresión, sino también en descompresión.

vordhosbn
fuente
1
Finalmente, con su respuesta, he encontrado lo que estaba buscando: la capacidad de usar todos los procesadores en la tarea.
Lonnie Best el
0

Deberías usar tar -Jchf <Filename>.tar.xz <Files to compress>

La -Jutiliza el algoritmo de compresión XZ, el mismo que 7zip

-ccrea un nuevo archivo -hconserva simlinks -festablece el nombre del archivo

cristiano
fuente