我有一些目录,我想打包成 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