Я пишу сценарий bash, который упаковывает мое приложение в файл TAR. Файлы не расположены на диске так, как они должны быть расположены в файле TAR, поэтому я решил использовать опцию --transform.
Однако, похоже, что команда --transform применяется глобально, а не к файлам, включенным после.
Пример:
tar \
--exclude='webmanager/bin/dev' \
--exclude='webmanager/.config.ini' \
--show-transformed-names \
--create --gzip --verbose \
--file 'output.tgz' \
-C '../../../' \
'include' \
'resources' \
'webmanager' \
'rootconfig.php' \
-C 'webmanager/bin/dev' \
'index.php' \
'README.md' \
--transform='s|^|webmanager/|r' \
'.config.ini'
По сути, этот код берет файл из webmanager/bin/dev/.config.ini
и помещает его в webmanager/.config.ini
в файл TAR. Но я хочу только преобразовать файл .config.ini. В настоящее время все содержимое преобразуется и имеет префикс webmanager/
. Я надеялся, что эта команда ведет себя как -C
(изменить текущий каталог) - где она влияет только на входы после нее.
Я просмотрел справочные страницы TAR и не могу понять, как это сделать правильно. Пожалуйста помоги!