tar -f 的灵活性

tar -f 的灵活性

例如,在以下命令中,tar -xzv有效但tar -xzvf失败:

wget ${target_url} -O - | tar -xzv --strip-components 1 -C ${web_application_root}/${domain}

据我了解,我将数据流下载到 STDOUT,wget并将其作为 STDIN 通过管道传输,以tar使用该数据创建(覆盖)目录文件。
我知道tar -xzvf失败是因为未存储到文件中的数据流不是 shell 的文件;所以告诉 tar -f“我使用一个文件”会破坏该操作。

我有一个没有注意到的情况-f,还有一个我忘记在管道时应该将其移除的情况;这些情况的发生很可能是因为我几乎总是使用-fwith tar
是否有一个 tar 版本,或者是否有一个调整来制作 tar,忽略-f数据流未存储到文件的情况?

相关:
1.在 tar 中使用 -f 的理由是什么
2.tar 提取时不带 -f 选项
3.将流从 wget 传送到 tar 并将其提取到特定位置失败

答案1

-f不会改变tar关于流或文件或类似内容的行为;它指定要使用的存档的名称

我不知道有任何变体tar可以处理选项没有参数的情况-f,也不知道有任何可靠的方法可以做到这一点。作为CAS说,你需要记住 总是-f带有一个参数。减少错误发生的一种方法是始终将其分离出来;f在诸如 的序列中,比-xzvf单独的更容易错过选项-f

如有必要,最好始终使用-f, ;这避免了依赖于没有选项-的行为(这取决于编译时选项和变量)。解决问题的一种方法是始终从行动之后开始,并在适当时进行更改。tar-fTAPE-f --

相关内容