是否可以在目录A中运行tar命令,从而从目录C中的文件中在目录B中创建tar归档文件?

亚历克斯·詹森

这是我的开始:

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个命令,但是!一定有更好的方法。

相关的XKCD

欧根·里克(Eugen Rieck)

假设$A$B并且$C是绝对路径,沿东西线

tar -C "$C" -czf "$B/my_archive.tar.gz" "my_file"

应该起作用:该-C参数转换为“执行任何操作之前更改为DIR。此选项对顺序敏感,即,它会影响后面的所有选项。”

您将需要$(realpath $A)和朋友一起修复相对路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重命名tar归档文件中的目录

tar目录,以将文件归档到要压缩的目录中

如何在目录中添加tar归档文件中的文件?

当文件存储在不同目录中时,创建不包含父目录的tar归档文件

如何在其他目录中创建tar归档文件?

在shell脚本中的指定目录中创建tar文件

从包含500000个文件的目录中创建许多tar文件

创建tar归档文件时添加目录

tar -xvf是否从目录中删除现有文件?

是否可以将zip和tar.gz文件作为目录集成到文件系统中

在子目录中创建一个包含以 C 开头的文件的 tar.gz 文件

Tar 命令将文件保存在工作目录而不是指定目录中

阴谋:tar存档中的文件不在预期目录中

如何基于压缩的tar文件的内容从目录中删除文件?

通过首先归档目录中的所有单个文件来创建目录的归档 (Python)

在父目录中创建tar存档

对目录中的每个文件运行命令

递归遍历目录,并在目录中的文件上运行命令

是否可以从运行框打开终端并使用“--”运行命令以在其他目录中写入文件?

确定tar文件中的目录数而不提取它

R:从 tar.gz 目录中读取单个文件

Tar Gzip目录中的每n个文件

如何在python中制作目录的tar文件备份

提取不同子目录中的.tar.gz文件

是否可以在只读目录中修改文件?

创建当前目录的tar归档文件,不带前期

创建不包含父目录的tar归档文件

tar:将单个文件提取到目录中而不创建子文件夹

使用脚本为目录中的每个 tar 文件创建内容文件