提取时不带 -f 选项的 tar

提取时不带 -f 选项的 tar

我的问题和问题类似tar命令中的-f参数有什么作用,但它与档案提取有关。如果我发出tar x而不是tar xf mytarball.tar,它是否期望我通过标准输入“输入”存档?这应该由 Ctrl-Z 终止吗?

答案1

这取决于tar实施情况。tar磁带归档器,对于大多数tar实现,如果您不提供f选项,则使用xtar将从某些磁带设备中提取数据。

然而,在一些tar实现中,包括 GNU、libarchive,star它不是从第一个磁带设备,而是从标准输入读取存档。

$TAPE在那些相同的实现中,当f未提供该选项时,还可以使用环境变量来指定磁带设备的路径。

如果tar's stdin 是终端设备,就像您在tar x没有输入重定向的终端中以 shell 提示符运行时一样,那么是的,您必须在键盘上键入存档的内容(这将非常棘手)考虑到 tar 档案是二进制格式)并通过按eof两次发送字符的键或组合键(通常是^D(0x4),通常通过按 获得Ctrl+D)来完成。

通常,您不会键入存档的内容,而是将 stdin 设置为文件或管道或套接字,例如

tar x < file # better as tar xf - < file for portability
xzcat file.xz | tar x

相关内容