есть ли команда для «просмотра содержимого a .tar.Z» в UNIX / IBM AIX

#unix #aix

#unix #aix

Вопрос:

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

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

Я уже пробовал wildcards и gtar -tvf

uncompress file.tar.Z|tar tvf -

uncompress file.tar.Z|tar xvf - /path/to/file

uncompress file.tar.Z|tar xvf - uncompress file.tar.Z|tar tvf - |grep wildcard

возвращает с ошибкой file.tar.Z не сжатый файл

file file.tar.Z : данные или текст на международном языке

это работает для меня, но только для файлов, размер которых не превышает 150 г gtar xvzf file.tar.Z path / но большинство файлов имеют размер выше 900 г.

файловые блоки в fsize = -1

До сих пор результатов нет, но я надеюсь, что найду что-нибудь с вашей помощью

Ответ №1:

Команда для просмотра содержимого этого файла:

 uncompress file.tar.Z|tar tvf -
 

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

 uncompress file.tar.Z|tar xvf - /path/to/file
 

Имейте в виду, что вы не можете использовать подстановочные знаки в UNIX tar

Если вы хотите использовать подстановочный знак, вы должны использовать что-то вроде:

 `uncompress file.tar.Z|tar xvf -  `uncompress file.tar.Z|tar tvf - |grep `wildcard`
 

Также не забудьте обновить ulimit so

 file(blocks) 2097151
 

укажите размер, больший, чем ваш tar-файл. Число в блоках 512 байт

Комментарии:

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

2. @Bodo, ОС кэширует большую часть операции чтения файлов. И в этом случае команды подключаются через канал, поэтому кэшировать не нужно

3. Это сделано специально: tar-файлы не имеют центрального каталога (в отличие от zip-файлов), метаданные и содержимое файлов смешиваются вместе.

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

5. @Bodo, кэш будет отвечать только за то, что он хочет извлечь файл с помощью подстановочного знака. В противном случае необходимо прочитать весь файл целиком. и кэш не будет задействован

Ответ №2:

Как насчет этой команды?

 tar tvfz ...
 

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

Комментарии:

1. Это не сработает, потому что (обычно) UNIX не используют GNU tar, поэтому у вас нет z

2. @RomeoNinov GNU tar, похоже, доступен. Цитата из вопроса: «Я уже пробовал подстановочные знаки и gtar -jtp2″

3. @Бодо, прекрасно. Но форматирование tvfz может не сработать. ИМХО формат propper таков tvzf . В противном z случае может быть засчитано как имя файла