这是我的开始:
ls "$A"
<current_directory>
ls "$B"
<nothing>
ls "$C"
my_file
这就是我要结束的事情:
tar -vczf <magic> "${B}/my_archive.tar.gz" "${C}/my_file"
ls "$B"
my_archive.tar.gz # contains my_file at root of archive (no directory)
pwd
<still in A>
我已经读过几次tar手册页。我唯一的结论是,如果标志按字母顺序列出而不是按功能分组,则更容易阅读。;-| 我觉得这个问题应该可以解决-C标志,但是似乎只能帮助获取C中的文件。我也一直在尝试通过以下各种迭代来克服tar的局限性:
pushd "$B"
tar -vczf <magic> "my_archive.tar.gz" "${C}/my_file"
popd
不得已的方法是:
pushd "$C"
tar -vczf my_archive.tar.gz my_file
mv my_archive.tar.gz "$B"
popd
到目前为止,这是唯一有效的方法。4个命令,但是!一定有更好的方法。
假设$A
,$B
并且$C
是绝对路径,沿东西线
tar -C "$C" -czf "$B/my_archive.tar.gz" "my_file"
应该起作用:该-C
参数转换为“执行任何操作之前更改为DIR。此选项对顺序敏感,即,它会影响后面的所有选项。”
您将需要$(realpath $A)
和朋友一起修复相对路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句