Сжимайте большое дерево папок, сохраняя при этом простой способ навигации и извлечения определенных файлов.

Это зависит от -локали, но нет румынского перевода для sudo, извините. Их нужно написать.

https://www.sudo.ws/repos/sudo/file/tip/po

О работающей системе см. ls /usr/share/locale/*/LC_MESSAGES/sudo*.

0
05.08.2019, 17:21
3 ответа

...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
3
28.01.2020, 02:18

С помощью параметров tarи -tvfвы можете просмотреть содержимое любого архива, созданного с помощью tar, даже в сочетании с другими библиотеками, такими как gzip, bzip2 или xz.

tar -tf file.tar
tar -ztf file.tar.gz
tar -jtf file.tar.bz2
tar -Jtf file.tar.xz

Список содержимого позволяет вам конкретно указать файл, который вы хотите извлечь из архива, а затем вы можете использовать конкретный путь для извлечения файла.

Допустим, ваш путь home/user/old/photos/beach2012/bigbeachball.jpg.

tar -xf file.tar home/user/old/photos/beach2012/bigbeachball.jpg
tar -zxf file.tar.gz home/user/old/photos/beach2012/bigbeachball.jpg
tar -jxf file.tar.bz2 home/user/old/photos/beach2012/bigbeachball.jpg
tar -Jxf file.tar.xz home/user/old/photos/beach2012/bigbeachball.jpg

Если ваш архивный файл не будет сильно меняться, (т.е. вы не будете слишком часто добавлять или удалять файлы из него ), вы всегда можете извлечь содержимое в текстовый файл. Наличие содержимого в текстовом файле, который вы можете искать с помощью grep, может упростить поиск файлов, чем необходимость обрабатывать архив каждый раз, когда вы хотите выполнить поиск.

1
28.01.2020, 02:18

Меня это всегда очень интересовало, вот несколько вариантов, над которыми я работал:

кабачки

Squashfs позволяет архивировать и сжимать данные, а затем монтировать их как файловую систему, чтобы вы могли просматривать их, как если бы они были несжатыми:

mksquashfs some/directory dir.squashfs
mkdir mnt
sudo mount -t squashfs dir.squashfs mnt 

Это работает только от root и только в Linux. Но squashfuse позволяет вам делать это как не -root в любой системе, поддерживающей FUSE -.

пикс

Кто-то уже упоминал pixz --, но это не просто распараллеленный xz. Он также добавляет к сжатому архиву файловый индекс , что значительно повышает эффективность небольших операций. Например:

# Listing files, and extracting a single file, using normal tar + xz
# So slow, not practical for interactive use.

$ time tar -tf 8gigs.tpxz > /dev/null
371.99s user 5.45s system 99% cpu 6:21.00 total
$ time tar -xf 8gigs.tpxz dir/somefile.txt
375.04s user 5.45s system 99% cpu 6:21.00 total

# Using pixz instead it's much faster!

$ time pixz -l < 8gigs.tpxz  > /dev/null
0.01s user 0.01s system 38% cpu 0.035 total
$ time pixz -x dir/somefile.txt < 8gigs.tpxz | tar x
0.33s user 0.02s system 97% cpu 0.359 total

Отказ от ответственности

Я написал pixz и squashfuse --, потому что у меня были проблемы, подобные вашей.

1
28.01.2020, 02:18

Теги

Похожие вопросы