Деформирует ли tar -tvf файл или просто перечисляет имена?

Ответ на ваш вопрос: No

Если вы хотите использовать 4.4 для компиляции задач, то установите его, он находится в repos

. Самый простой способ - установить Нет , поиск gcc, g ++, cpp.

Вы также можете использовать программный центр, искать gcc-, g ++ =, cpp = (обратите внимание, что = не является опечаткой)

8
задан 15 May 2018 в 07:20

2 ответа

Файлы tar.gz не имеют индекса. В отличие от zip или других форматов архивов, нет ничего тривиального и дешевого для получения списка содержащихся файлов или других метаданных. Чтобы показать вам, какие файлы содержатся в архиве, tar действительно нужно распаковать архив и извлечь файлы, хотя в случае опции -t он делает это только в памяти.

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

Возможно, вы также захотите взглянуть на формат HDF5 для более сложных сценариев.

Измерения

Мне просто нужно было сделать некоторые измерения, чтобы доказать мой ответ и создал несколько каталогов со многими файлами в них и упаковал их, которые оба, tar czf files#.tgz files# и zip -r files#.zip files#.

Для тестов я дважды запускал команду распаковки и принимал результат второй

Тест 1

Каталог files1, содержащий 100 000 пустых файлов.

$ time tar tzf files1.tgz >/dev/null tar tzf files1.tgz > /dev/null 0,56s user 0,09s system 184% cpu 0,351 total $ time unzip -l files1.zip >/dev/null unzip -l files1.zip > /dev/null 0,30s user 0,34s system 99% cpu 0,649 total

Здесь zip медленнее.

Тест 2

Каталог files2, содержащий 100 000 пустых файлов случайных данных каждый.

$ time tar tzf files2.tgz >/dev/null tar tzf files2.tgz > /dev/null 0,14s user 0,03s system 129% cpu 0,131 total $ time unzip -l files2.zip >/dev/null unzip -l files2.zip > /dev/null 0,03s user 0,06s system 98% cpu 0,092 total

Все еще не убедительно, но на этот раз zip быстрее.

Тест 3

Каталог files3, содержащий 5 000 файлов с 5 кбайт случайных данных каждый.

$ time tar tzf files3.tgz >/dev/null tar tzf files3.tgz > /dev/null 0,42s user 0,03s system 111% cpu 0,402 total $ time unzip -l files3.zip >/dev/null unzip -l files3.zip > /dev/null 0,03s user 0,06s system 99% cpu 0,093 total

В этом тесте можно видеть, что чем больше файлы получаются, тем сложнее будет указать их.

Заключение

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

12
ответ дан 17 July 2018 в 14:18

Файлы tar.gz не имеют индекса. В отличие от zip или других форматов архивов, нет ничего тривиального и дешевого для получения списка содержащихся файлов или других метаданных. Чтобы показать вам, какие файлы содержатся в архиве, tar действительно нужно распаковать архив и извлечь файлы, хотя в случае опции -t он делает это только в памяти.

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

Возможно, вы также захотите взглянуть на формат HDF5 для более сложных сценариев.

Измерения

Мне просто нужно было сделать некоторые измерения, чтобы доказать мой ответ и создал несколько каталогов со многими файлами в них и упаковал их, которые оба, tar czf files#.tgz files# и zip -r files#.zip files#.

Для тестов я дважды запускал команду распаковки и принимал результат второй

Тест 1

Каталог files1, содержащий 100 000 пустых файлов.

$ time tar tzf files1.tgz >/dev/null tar tzf files1.tgz > /dev/null 0,56s user 0,09s system 184% cpu 0,351 total $ time unzip -l files1.zip >/dev/null unzip -l files1.zip > /dev/null 0,30s user 0,34s system 99% cpu 0,649 total

Здесь zip медленнее.

Тест 2

Каталог files2, содержащий 100 000 пустых файлов случайных данных каждый.

$ time tar tzf files2.tgz >/dev/null tar tzf files2.tgz > /dev/null 0,14s user 0,03s system 129% cpu 0,131 total $ time unzip -l files2.zip >/dev/null unzip -l files2.zip > /dev/null 0,03s user 0,06s system 98% cpu 0,092 total

Все еще не убедительно, но на этот раз zip быстрее.

Тест 3

Каталог files3, содержащий 5 000 файлов с 5 кбайт случайных данных каждый.

$ time tar tzf files3.tgz >/dev/null tar tzf files3.tgz > /dev/null 0,42s user 0,03s system 111% cpu 0,402 total $ time unzip -l files3.zip >/dev/null unzip -l files3.zip > /dev/null 0,03s user 0,06s system 99% cpu 0,093 total

В этом тесте можно видеть, что чем больше файлы получаются, тем сложнее будет указать их.

Заключение

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

12
ответ дан 20 July 2018 в 14:22

Другие вопросы по тегам:

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