...have to decompress everything to extract any file... Right?.
нет, если вы избегаете смолы; поиск имен файлов и извлечение одного файла из архива легко (и быстро с.zip,.7z ). Пример;
> du -h a.* 223M a 115M a.tar.gz 75M a.7z > 7z l a.7z | wc -l 2253 > ( time 7z l a.7z >/dev/null ) 2>&1 | grep user user 0m0.014s > ( time tar -ztf a.tar.gz >/dev/null ) 2>&1 | grep user user 0m2.055s
...compress each file will be less optimal than aggregate all files in a tar file and then compress it... Right?
Верно.
Мой первый комментарий заключается в том, что 7z является многопоточным -многопоточным и индексированным, в то время как tar.xz не таков, поэтому существует огромная разница в производительности.
Но на самом деле я бы просто использовал файловую систему или устройство отображения для сжатия;
vdo create --name=vdo_volume --device=/dev/vda
Файловые системы, которые сжимаются;https://en.m.wikipedia.org/wiki/Category:Compression_file_systemsнапример
mount -t btrfs -o compress=lzo /dev/sdb /media/my_compressed_files
Обратите внимание, что обе эти операции могут быть выполнены на обратном -устройстве обратной связи, поэтому они могут действовать как целая файловая система в файле.
Существуют также архивные драйверы фьюзов, такие как fuse -7z -ng, которые будут быстрыми для извлечения данных, но производительность записи будет ужасной.
fuse-7z-ng files.7z /media/my_compressed_files