我的问题和问题类似tar命令中的-f参数有什么作用,但它与档案提取有关。如果我发出tar x
而不是tar xf mytarball.tar
,它是否期望我通过标准输入“输入”存档?这应该由 Ctrl-Z 终止吗?
答案1
这取决于tar
实施情况。tar
是磁带归档器,对于大多数tar
实现,如果您不提供f
选项,则使用x
,tar
将从某些磁带设备中提取数据。
然而,在一些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