执行命令时出现问题如下:
tar -xvf arch.tar.gz -s '/^bundle//'
可能是
-s '/^bundle//'
是一个问题,因为我遇到了错误:
$ tar -xvf arch.tar.gz -s '/^bundle//'
tar: /^bundle: Not found in archive
tar: Exiting with failure status due to previous errors
尝试在Cygwin / Win10下运行命令。 它是较长脚本的一部分,但我不确定原作者的想法是什么。存档中包含'bundle'文件夹...并且它是那里唯一的第一级文件。
提前谢谢你:)
答案 0 :(得分:0)
-s
并不意味着要进行替换,这似乎是您尝试使用它的方式。您可能需要--xform='s/^bundle//'
-s
在帮助列表中包含以下条目:
-s, - custom-order, - same-order
成员参数的列出顺序与
相同 存档中的文件
使用您的代码,它实际上是在尝试查找名称为/^bundle//
且不存在的文件,即使bundle
也是如此。此外,我提供的--xform
选项将重写文件名以从前面删除字符串bundle
。如果您只是想提取文件bundle
,则需要标记--exclude='bundle'
在这种情况下,如果bundle
是归档中的顶级目录,并且它是唯一的目录,那么您也可以使用标记--strip-components=1
,尽管这样可以摆脱所有顶级目录,所以可能不完全是您想要的,具体取决于您的存档
答案 1 :(得分:0)
全心全意,
问题解决了其他问题,然后是#tar;方式,但对于那些可能感兴趣的人来说,这是我在网上找到的答案:
如果您正在使用Linux或使用GNU tar进行开发,则此命令应该起作用:
tar -xvf arch.tar.gz --transform 's|^bundle/||'
对于基于Mac或BSD的操作系统:
tar -xvf arch.tar.gz -s '/^bundle//'
是的,我的想法是从文件路径中删除/ bundle /文件夹。