gpt4 book ai didi

linux - 将文件从 tar 管道传输到命令

转载 作者:太空狗 更新时间:2023-10-29 11:20:18 25 4
gpt4 key购买 nike

我需要解压一个多文件存档。而且我必须使用二进制文件来进行实际编写。

对于单个文件存档,我很满意

tar -Oxvf singlefile.tgz | writer filename

对于多个文件,tar 有一个 --to-command 选项,可以将每个文件传送到指定的命令。听起来不错,但是文件名呢?

>tar xvf test.tgz --to-command='writer' 2> /dev/null
tets1
test2
test3

tar 似乎将文件名输出到其标准输出,但我找不到在命令中获取文件名的方法。

有什么想法吗?

最佳答案

如果您使用 --to-command 标志,有关进程的各种元数据在环境中可用。运行 tar -xf file.tar --to-command=env 给出:

TAR_VERSION=1.28
TAR_ARCHIVE=file.tar
TAR_VOLUME=1
TAR_BLOCKING_FACTOR=20
TAR_FORMAT=gnu
TAR_FILETYPE=f
TAR_MODE=0644
TAR_FILENAME=file1.txt
TAR_REALNAME=file1.txt
TAR_UNAME=james_pic
TAR_GNAME=users
TAR_ATIME=1501586107.32746318
TAR_MTIME=1492550943
TAR_CTIME=1501586107.32746318
TAR_SIZE=12345
TAR_UID=1001
TAR_GID=1000

出于您的目的,您可能需要 TAR_FILENAME

关于linux - 将文件从 tar 管道传输到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8438982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com