.7z
архивы - это архивы, которые часто сжимаются по какому-то алгоритму, а .tar
архивы - это просто архивы.
Они различаются по своему объему, и в большинстве случаев преобразование потребует необязательной распаковки, за которой всегда следует извлечение исходного архива. Даже если .7z
архив не использует сжатие, он все равно потребует извлечения.
При этом, если вы намеревались [распаковать] / извлечь / переархивировать исходный архив сразу, ответ таков: вы не можете, по крайней мере, не использовать стандартные инструменты Ubuntu, потому что tar
не можете читатьstdin
, поэтому вы не можете передавать 7z
и tar
, В любом случае, все очень просто автоматизировать одной командой:
mkdir tmp && 7z x <path_to_source_archive> -otmp && tar cf archive.tar tmp && rm -rf tmp
* <path_to_archive> = путь к исходному .7z
архиву
Кроме того , время , необходимое для файлов исходного архива, чтобы записать на диск и для извлечения файлов для чтения, чтобы [декомпрессия] / выписка / rearchive архив источника в два этапа является узким местом для всей задачи в основном (Altough не только) из-за низкой скорости ввода-вывода потенциального диска, поэтому частичным решением было бы сохранить временные файлы на виртуальном диске для того, чтобы почти устранить общее узкое место:
- Создайте точку монтирования для файловой системы ramdisk:
sudo mkdir /mnt/tmpfs
- Смонтируйте файловую систему виртуального диска :
sudo mount -t tmpfs -o size=<tmpfs_size> tmpfs /mnt/ramdisk
* <tmpfs_size> = размер файловой системы в байтах * 10 3 (1, 1K, 1M, 1G, ...)
- Выполнить
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> = путь к исходному .7z
архиву
- Размонтируйте файловую систему виртуального диска:
sudo umount
- Удалите точку монтирования для файловой системы ramdisk:
sudo rmdir /mnt/tmpfs
.7z
файл на другом компьютере?