Вот с чего я начинаю:
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>
Я прочитал man-страницу 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 команды !? Там должен быть лучший путь.