Большой файл tar. Как получить UID GID свойства папки root, не распаковывая все ее содержимое? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть файл filename.tar.bz2 размером несколько ГБ. Я хочу получить UID и GID папки root, которая идет в комплекте с файлом tar, без распаковки его полного содержимого.

На данный момент я могу получить необходимую информацию с помощью такой команды: :

tar xjf filename.tar.bz2 --to-command 'echo $TAR_FILENAME:$TAR_UID:$TAR_GID:$TAR_UNAME:$TAR_GNAME'

... но я хочу, чтобы он остановился после отображения первой строки (папка root).

Мне нужна опция --to-command, чтобы отобразить uid и gid файла (целые числа)

Есть ли способ сделать это?

Спасибо.

Обновление 1

Я вроде нашел способ сделать это. Следующая команда отображает первый файл в потоке и завершается:

tar xjf filename.tar.bz2 --occurrence --wildcards '**/*.*' --to-command 'echo $TAR_FILENAME:$TAR_UID:$TAR_GID:$TAR_UNAME:$TAR_GNAME'

output : folder1/folder2/folder3/file.c:1004:1009:chuzo:adm

Не знаю, почему, когда я меняю подстановочный знак для совпадения root папка ничего не показывает:

tar xjf filename.tar.bz2 --occurrence --wildcards '*' --to-command 'echo $TAR_FILENAME:$TAR_UID:$TAR_GID:$TAR_UNAME:$TAR_GNAME'

вывод : пусто

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Опция tvf выводит информацию без распаковки, как показано в этом примере:

tar -tvf uploadprogress.tar

-rw-r--r-- chregu/staff   2276 2011-08-15 18:51:10 package2.xml
-rw-r--r-- chregu/staff   7877 2011-08-15 18:51:10 uploadprogress/examples/index.php
-rw-r--r-- chregu/staff   1685 2011-08-15 18:51:10 uploadprogress/examples/server.php
-rw-r--r-- chregu/staff   1697 2011-08-15 18:51:10 uploadprogress/examples/info.php
-rw-r--r-- chregu/staff    367 2011-08-15 18:51:10 uploadprogress/config.m4
-rw-r--r-- chregu/staff    303 2011-08-15 18:51:10 uploadprogress/config.w32
-rw-r--r-- chregu/staff   3563 2011-08-15 18:51:10 uploadprogress/php_uploadprogress.h
-rw-r--r-- chregu/staff  15433 2011-08-15 18:51:10 uploadprogress/uploadprogress.c
-rw-r--r-- chregu/staff   1433 2011-08-15 18:51:10 package.xml

РЕДАКТИРОВАТЬ: Чтобы отобразить UID и GID из файла tar, добавьте опцию --numeric-owner.

1 голос
/ 26 марта 2020

Я хочу остановить его после отображения первой строки (папка root).

Так что направьте его на head -n1.

tar ..... | head -n1
...