.7z
los archivos son a menudo comprimidos con algún tipo de algoritmo, mientras que los .tar
archivos son solo archivos.
Difieren en su alcance, y en la mayoría de los casos una conversión requeriría una descompresión opcional siempre seguida de una extracción del archivo fuente. Incluso si un .7z
archivo no utilizara ninguna compresión, aún requeriría una extracción.
Dicho esto, si pretendías [descomprimir] / extraer / volver a archivar el archivo fuente de una vez, la respuesta es que no puedes, al menos no usar las herramientas predeterminadas de Ubuntu porque tar
no puedes leerstdin
, así que no puedes canalizar 7z
y tar
. De todos modos, es muy fácil automatizar todo en un solo comando:
mkdir tmp && 7z x <path_to_source_archive> -otmp && tar cf archive.tar tmp && rm -rf tmp
* <path_to_archive> = ruta al .7z
archivo fuente
Además, el tiempo requerido para que los archivos del archivo fuente se escriban en el disco y para que los archivos extraídos se lean con el fin de [descomprimir] / extraer / volver a archivar el archivo fuente en dos pasos es un cuello de botella para la tarea en su mayoría (aunque no solo) debido a la baja velocidad de E / S de un disco potencial, por lo que una solución parcial sería almacenar los archivos temporales en un disco RAM para casi anular el cuello de botella general:
- Cree el punto de montaje para el sistema de archivos de ramdisk:
sudo mkdir /mnt/tmpfs
- Montar el sistema de archivos del disco ram:
sudo mount -t tmpfs -o size=<tmpfs_size> tmpfs /mnt/ramdisk
* <tmpfs_size> = tamaño del sistema de archivos en bytes * 10 3 (1, 1K, 1M, 1G, ...)
- Ejecute
mkdir /mnt/tmpfs/tmp && 7z x <path_to_source_archive> -o/mnt/tmpfs/tmp && tar cf archive.tar /mnt/tmpfs/tmp && rm -rf /mnt/tmpfs/tmp
* <path_to_archive> = ruta al .7z
archivo fuente
- Desmontar el sistema de archivos del ramdisk:
sudo umount
- Elimine el punto de montaje para el sistema de archivos de ramdisk:
sudo rmdir /mnt/tmpfs
.7z
archivo en otra computadora?