Скажем, у меня есть каталог файлов в
/home/user1/dir1
и я хочу создать tar только с "dir1" в качестве ведущего каталога:
/dir1/file1
/dir1/file2
Я знаю, что могу сначала перейти в каталог
cd /home/user1/
tar czvf dir1.tar.gz dir1
Но при написании сценариев переход из каталога в каталог не всегда благоприятен. Мне интересно, есть ли способ сделать это с абсолютными путями без изменения текущих каталогов?
Я знаю, что всегда могу создать tar-файл с абсолютными путями ВНУТРИ и использовать
--strip-components
при извлечении, но иногда дополнительные имена путей являются дополнительной личной информацией, которую вы не хотите распространять с вашими файлами tar.
Спасибо!
tar -C изменяет каталог
tar -C /home/user1/ -cvzf dir1.tar.gz dir1
кстати, удобный для отслеживания смены каталогов ... используйте pushd и popd.
pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd
С помощью gnu tar вы можете создать архив с базовым каталогом, отличным от фактического, с помощью:
tar -c --transform 's,^\.,mybasedir,' .
Просто адаптируйте выражение sed под свои нужды.
Хорошо, я также узнал, что
tar -czvf file1.tar.gz /home/user1/dir1/../dir1
тоже работал так, как я хотел.
tar -C /home/user1/dir -c .