Respuestas:
Use la -Jopción de compresión para xz. Y recuerda man tar:)
tar cfJ <archive.tar.xz> <files>
Editar 2015-08-10:
Si está pasando los argumentos tar con guiones (por ejemplo tar -cf, en lugar de tar cf), la -fopción debe ser la última , ya que especifica el nombre del archivo (¡gracias a @ABB por señalarlo!). En ese caso, el comando se ve así:
tar -cJf <archive.tar.xz> <files>
fúltimo, incluso sin el guión.
taren macOS parece ser compatible, -Jpero la función no se encuentra en la página del manual. Tuve que buscarlo aquí. Aunque mencionan XZ en la sección sobre --options...
Switch -Jsolo funciona en sistemas más nuevos. El comando universal es:
Para hacer un archivo .tar.xz
tar cf - directory/ | xz -z - > directory.tar.xz
Explicación
tar cf - directorylee el directorio / y comienza a ponerlo en formato TAR. La salida de esta operación se genera en la salida estándar.
| canaliza la salida estándar a la entrada de otro programa ...
... que resulta ser xz -z -. XZ está configurado para comprimir ( -z) el archivo de la entrada estándar ( -).
Redirige la salida desde xzel tar.xzarchivo.
-fno significa "desde el archivo" cuando se pasa a xz. En cambio, es la abreviatura de --force(ver xz (1) para más detalles), y es mejor no usarlo a menos que sea necesario.
tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0o -0 -T0como opciones, lo que generalmente le dará un archivo más pequeño que gzip en un tiempo comparable o más rápido, mientras que el valor predeterminado -6es considerablemente más lento que gzip
Si te gusta el modo de tubería, esta es la solución más limpia:
tar c some-dir | xz > some-dir.tar.xz
No es necesario poner la fopción para manejar archivos y luego usar -para especificar que el archivo es la entrada estándar. Tampoco es necesario especificar la -zopción para xz, porque es predeterminada.
Funciona con gzipy bzip2también:
tar c some-dir | gzip > some-dir.tar.gz
o
tar c some-dir | bzip2 > some-dir.tar.bz2
La descompresión también es bastante sencilla:
xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x
Si solo tiene tararchivo, puede usar cat:
cat archive.tar | tar x
Si necesita enumerar solo los archivos, use tar t.
Si desea utilizar opciones de compresión xzo si está utilizando tarMacOS, probablemente desee evitar la tar -cJfsintaxis.
Según man xz, la forma de hacer esto es:
tar cf - baz | xz -4e > baz.tar.xz
Porque me gustó el formato de Wojciech Adam Koszek , pero no la información:
c crea un nuevo archivo para los archivos especificados. flee desde un directorio (lo mejor es poner este segundo porque -cf! = -fc)- salidas a salida estándar| canaliza la salida al siguiente comandoxz -4ellamadas xzcon la -4eopción de compresión. (igual a -4 --extreme)> baz.tar.xz dirige el archivo alquitranado y comprimido a baz.tar.xz donde -4eestá, use sus propias opciones de compresión. A menudo utilizo -kpara --keepel archivo original y -9para la compresión muy pesado. -zpara establecer manualmente xzen zip, aunque el valor predeterminado es comprimir si no se indica lo contrario.
Para hacer eco de Rafael van Horn , para descomprimir y descomprimir (ver nota a continuación):
xz -dc baz.tar.xz | tar x
Nota: a diferencia de la respuesta de Rafael , use en xz -dclugar de catxz. Los documentos recomiendan esto en caso de que esté usando esto para secuencias de comandos. Es mejor tener el hábito de usar -do en --decompresslugar de hacerlo unxztambién. Sin embargo, si debe hacerlo, usar esos comandos desde la línea de comandos está bien.
tar -cJfsintaxis en MacOS? Solo curiosidad, porque estaba haciendo eso justo ahora y parecía estar funcionando.
Prueba esto: tar -cf file.tar file-to-compress ; xz -z file.tar
Nota:
| porque esto ejecuta comandos simultáneamente. Usando ;o &ejecuta comandos uno tras otro.Jopción, pero esto funciona. Creo que necesitas RHEL6.
tar -c file-to-compress | xz -z > file.tar.xz.
&no iniciará un comando uno tras otro. En su lugar, lanzará el primero como un proceso en segundo plano.
val comando switches (tar -cJvf) para que sea detallado muestra los archivos que se agregan al archivo.