尝试使用以下命令解压缩管道 tar 文件时出现以下错误:
$ git archive --format=tar 0af62b1 | tar -xf -C /the/path/here/
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
第一部分git archive --format=tar 0af62b1
输出一个 tar 文件,打印在屏幕上。可以使用参数 将该输出捕获到文件中--output file_name
。
在第二部分中,我尝试将文件的内容提取到指定的路径中。当单独运行时,两者都可以完美运行,git archive 0af62b1 --output file_name
然后是tar -xf file_name -C /the/path/here/
.
为什么在这种情况下无法进行管道传输?我如何知道某个命令是否接受管道输入?
答案1
我会尝试将您的管道输入git
到 标准输入的同义词tar -xf - -C /the/path/here/
。-
或者更简单tar -xC /the/path/here
(-
是默认文件)。
答案2
问题在您的错误输出中给出:
$ git 存档 --format=tar 0af62b1 |柏油-xf-C/该/路径/此处/
tar:-C:无法打开:没有这样的文件或目录
tar: 错误不可恢复: 立即退出
您告诉 tar 使用名为 -C 的文件,该文件不存在,因此会失败。
在工作情况下,您给出一个名为 file_name 的文件,该文件存在并且一切正常。
可能的修复:删除命令中的“-f -C”。