我需要解压多文件存档。我必须使用二进制文件来进行实际编写。
使用单个文件存档,我很满意
tar -Oxvf singlefile.tgz | writer filename
对于多个文件,tar有一个“--to-command”选项,用于将每个文件传递给指定的命令。听起来不错,但文件名怎么样?
>tar xvf test.tgz --to-command='writer' 2> /dev/null
tets1
test2
test3
tar似乎将文件名输出到它的stdout,我找不到在命令中获取文件名的方法。
有什么想法吗?
感谢, 亚历
答案 0 :(得分:1)
如果您使用--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
答案 1 :(得分:0)
您是否阅读了tar man page和GNU tar documentation?
您可能也会对tardy
感兴趣