.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
файл на іншому комп'ютері?