使用 tar 重命名目录

使用 tar 重命名目录

我有一些目录,我想打包成 tgz 档案:

/home/stofl/myproject/migrations/
/home/stofl/myproject/source/
/path/to/my/migration/tool/source/

该档案应具有以下结构:

migrations/
source/
my_migration_tool/

我是否必须将迁移工具复制到其中/home/stofl/myproject/(或创建符号链接)或者还有其他方法吗?

编辑

稍后可以使用 压缩存档gzip。因此,也许有一种方法可以使用 将目录附加到存档中tar--append但我没有找到一种方法来告诉tar使用不同的名称。

答案1

因为档案应该有相对路径(migrations/ source/ my_migration_tool/),所以必须有一个由...制成的档案/home/stofl/myproject

正如您提到的,您可以将目录附加到 tar 存档(tar仅允许附加非 gzip 存档)。但这不会将第三个目录重命名为 my_migration_source:

cd /home/stofl/myproject
tar cvf myprojects.tar migrations source
/path/to/my/migration
# appends contents of tool to archive
tar -rv --file /home/stofl/myproject/myprojects.tar tool 

我认为最简单的选择是使用符号链接:

cd /home/stofl/myprojec 
ln -s my_migration_tool /path/to/my/migration/tool/source/
# tar H option to follow symbolic links
tar cvfH myprojects.tar migrations source my_migration_tool

相关内容