Следующая команда:
tar -C "${HOME}/temp" -zcvf uber-bundle.tgz temp
сбой со следующей ошибкой:
tar: temp: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Однако работает немного другая команда, хотя и создается tar с неправильной структурой каталогов:
tar -C "${HOME}/temp" -zcvf uber-bundle.tgz ~/temp
tar: Removing leading `/' from member names
...
Понятно, что опция -C не может изменить текущий каталог tar на $ {HOME}, что делает каталог нераспознаваемым. Что пошло не так и как это исправить?
Здесь происходит следующее: опция -C указывает tar сначала сменить каталог перед созданием архива. Итак, в первом примере вы делаете примерно следующее:
cd /home/whatever/temp/; tar -zcvf uber-bundle.tgz temp;
Теперь вы уверены, что у вас есть дополнительный каталог temp по этому пути '/ home / something / temp /'
Во втором случае, поскольку вы используете абсолютный путь ~ / temp в качестве аргумента tar, даже если tar изменил ваш каталог на '/ home / something / temp /', он работает с аргументом ~ / temp, поэтому вы делаете это:
cd /home/whatever/temp/; tar -zcvf uber-bundle.tgz ~/temp;
Итак, в этом случае проблема заключается в том, что вы создаете tar-архив каталога, в котором находитесь.