.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архіву
Також час, необхідний для запису файлів архіву джерела на диск та для зчитування витягнутих файлів, щоб [декомпресувати] / витягнути / перезавантажити вихідний архів у два етапи - це вузьке місце для всього завдання здебільшого (хоч і не лише) через низьку швидкість вводу / виводу потенційного диска, тому частковим рішенням буде збереження тимчасових файлів у рамковий диск, щоб майже анулювати загальне вузьке місце:
- Створіть точку монтування для файлової системи ramdisk:
sudo mkdir /mnt/tmpfs
- Встановіть файлову систему ramdisk:
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архіву
- Відключіть файлову систему ramdisk:
sudo umount
- Видаліть точку монтування файлової системи ramdisk:
sudo rmdir /mnt/tmpfs
.7zфайл на іншому комп'ютері?