3

У меня есть несколько каталогов, я хочу упаковать в архив 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 ответ1

3

Поскольку у архива должны быть относительные пути (migrations/ source/ my_migration_tool/), должен быть архив, созданный из /home/stofl/myproject .

Как вы упомянули, вы можете добавить каталог в архив tar ( tar только разрешает добавление для неархивированных архивов). Но это не переименует 3-й каталог в 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .