Действительно ли возможно перечислить все файлы в *.tar.gz файле, не сканируя, это - целое содержание?

В вашем скрипте Cron есть как минимум два ошибка: сначала вы должны сделать Set-E в начале, чтобы сразу же заканчивалась любая ошибка. Более того, поскольку вы используете относительные исходные данные, вы должны сделать CD в нужный рабочий каталог:

cd /home/nalangi

Примечание. Страница CRON (8) MAN говорит:

При выполнении команд любой выход отправляется владельцу Crontab (или пользователю, названному в переменной среде Mailto в Crontab, если таковые существуют).

Итак, если произошла ошибка, у вас должна быть почта, показывающая сообщение об ошибке.

0
03.04.2015, 23:43
2 ответа

Короткий ответ - "нет".

7Zip, RAR, zip, и др. - все это двухфункциональные программы/форматы файлов. Они сжимают отдельные файлы, затем архивируют сжатые результаты. В результате части файла не сжаты, а , что, в свою очередь, позволяет программам попасть в отдельные файлы.

gzip (часть .gz) отличается. Он сжимает только один байтовый поток. Поток байт обеспечивается с помощью tar. bzip2 (.bz2) делает то же самое, хотя и с другим алгоритмом. tar - программа архиватора, а gzip - программа сжатия. Чтобы вообще попасть в архив, сначала необходимо распаковать поток . Это может произойти только через весь файл . Затем, и только после этого, можно tar добраться до отдельных частей архива.

Причина, по которой вы не видите здесь шага gzip, заключается в том, что он был встроен в tar, не напрямую как таковой , а с помощью tar, зная, что его выходной поток будет направлен на gzip.

2
28.01.2020, 02:28

Нет, это невозможно. Описание формата файла tar см. в Википедия . В основном, это просто чередующаяся последовательность заголовка файла и содержимого файла . В начале нет оглавления, вся информация о каждом файле находится в его заголовке файла .

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

1
28.01.2020, 02:28

Теги

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