我的问题类似于问题What do the -f parameter in the tar command,但它与存档提取有关。如果我发出tar x
而不是tar xf mytarball.tar
,是否期望我通过标准输入“输入”存档?这应该由Ctrl-Z终止?
这取决于tar
实现。tar
作为磁带归档,与大多数tar
实现中,如果你不给一个f
选项,用x
,tar
会从一些磁带设备中提取数据。
tar
然而,在像 GNU 这样的一些现代实现中,它不是第一个磁带设备,而是从标准输入读取存档。
如果 tar 的 stdin 是一个终端,比如当你tar x
在没有输入重定向的情况下在终端的 shell 提示符下运行时,那么是的,你必须在键盘上输入存档的内容(考虑到这将是非常棘手的) tar 存档是二进制格式)并通过按eof
两次发送字符的键或组合键完成(通常是^D
(0x4),通常通过按 获得Ctrl+D)。
通常,您不键入存档的内容,而是将 stdin 设置为文件或管道或套接字,例如
tar x < file # better tar xf - < file for portability
xzcat file.xz | tar x
Run Code Online (Sandbox Code Playgroud)