示例为--numeric-owner

示例为--numeric-owner

我有一个 tar 存档,想要查看包含组 ID 和用户 ID 的内容。使用时

tar --list -v --file file.tar

我看到了用户和组名称,但我想查看用户 ID 和组 ID。我怎样才能实现这个目标?或者用户本身存储在 tar 存档中,而不是 ID?

答案1

创建 tar 存档时,tar 实用程序会存储用户 ID。当您显示内容时,它会在 /etc/passwd 中查找用户,如果找到则打印用户名,如果没有则打印 ID。

为了避免这种行为,请尝试使用该--numeric-owner选项。

答案2

使用--to-command选项:

tar xf file.tar --to-command 'echo $TAR_FILENAME:$TAR_UID:$TAR_GID'

要查看用户名和组名,而不是 uid/gid:

tar xf file.tar --to-command 'echo $TAR_FILENAME:$TAR_UNAME:$TAR_GNAME'

答案3

如果您不想提取,而只想列出,则更好:

tar --list -tf data.tar.xz

示例为--numeric-owner

$ tar --list --numeric-owner -tf data.tar.xz
drwxr-xr-x 0/0               0 2013-07-15 04:41 ./
drwxr-xr-x 0/0               0 2013-07-15 04:41 ./usr/
drwxr-xr-x 0/0               0 2022-10-18 10:30 ./usr/bin/
-rwxrwxr-x 0/0              60 2022-10-18 10:25 ./usr/bin/furiusisomount
drwxr-xr-x 0/0               0 2013-07-15 04:41 ./usr/share/
drwxr-xr-x 0/0               0 2013-07-15 04:41 ./usr/share/menu/
-rw-r--r-- 0/0             189 2013-07-11 17:14 ./usr/share/menu/furiusisomount

没有的例子

$ tar --list -tf data.tar.xz
drwxr-xr-x root/root         0 2013-07-15 04:41 ./
drwxr-xr-x root/root         0 2013-07-15 04:41 ./usr/
drwxr-xr-x root/root         0 2022-10-18 10:30 ./usr/bin/
-rwxrwxr-x root/root        60 2022-10-18 10:25 ./usr/bin/furiusisomount
drwxr-xr-x root/root         0 2013-07-15 04:41 ./usr/share/
drwxr-xr-x root/root         0 2013-07-15 04:41 ./usr/share/menu/
-rw-r--r-- root/root       189 2013-07-11 17:14 ./usr/share/menu/furiusisomount

相关内容