Estoy tratando de crear un .tar.xzarchivo comprimido en un comando. ¿Cuál es la sintaxis específica para eso?
Lo he intentado tar cf - file | xz file.tar.xz, pero eso no funciona.
compression
archive
tar
xz
George K.
fuente
fuente

val comando switches (tar -cJvf) para que sea detallado muestra los archivos que se agregan al archivo.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
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
xzeltar.xzarchivo.fuente
-fno significa "desde el archivo" cuando se pasa axz. 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 gzipSi te gusta el modo de tubería, esta es la solución más limpia:
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 paraxz, porque es predeterminada.Funciona con
gzipybzip2también:o
La descompresión también es bastante sencilla:
Si solo tiene
tararchivo, puede usarcat:Si necesita enumerar solo los archivos, use
tar t.fuente
Usar las opciones de compresión xz
Si desea utilizar opciones de compresión
xzo si está utilizandotarMacOS, probablemente desee evitar latar -cJfsintaxis.Según
man xz, la forma de hacer esto es:tar cf - baz | xz -4e > baz.tar.xzPorque me gustó el formato de Wojciech Adam Koszek , pero no la información:
ccrea 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 -4ellamadasxzcon la-4eopción de compresión. (igual a-4--extreme)> baz.tar.xzdirige el archivo alquitranado y comprimido abaz.tar.xzdonde
-4eestá, use sus propias opciones de compresión. A menudo utilizo-kpara--keepel archivo original y-9para la compresión muy pesado.-zpara establecer manualmentexzen zip, aunque el valor predeterminado es comprimir si no se indica lo contrario.Descomprimir y descomprimir
Para hacer eco de Rafael van Horn , para descomprimir y descomprimir (ver nota a continuación):
Nota: a diferencia de la respuesta de Rafael , use en
xz -dclugar decatxz. 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 hacerlounxztambién. Sin embargo, si debe hacerlo, usar esos comandos desde la línea de comandos está bien.fuente
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.tarNota:
|porque esto ejecuta comandos simultáneamente. Usando;o&ejecuta comandos uno tras otro.fuente
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.