Просто CD
к папке, откуда вы хотите, чтобы создать структуру Tress Tarball, и использовать относительные пути!
Так, например:
# Note, one folder above
cd /path/to/compress/..
# Tell tar to compress the relative path
tar -zcvf /path/to/compressed/file.tar.gz compress
Когда вы распадаете, он будет создан папку Compress
в текущем рабочем каталоге.
Вы можете исключить файлы или папки, используя опцию - Exclude
, и добавьте дату в имею имени файла с датой Дата + формата
, например:
FILENAME="file-`date +%d-%m-%Y-%T`.tgz"
tar -zcvf /path/to/compressed/$FILENAME --exclude cache --exclude logs --exclude bootstrap.php.cache compress
с GNU TAR
Вы можете использовать:
--transform=EXPRESSION, --xform=EXPRESSION
Use sed replace EXPRESSION to transform file names.
, что означает - XForm = 's | путь / к / ||'
будет удалять путь / к /
с пути;
И
--exclude=PATTERN
Exclude files matching PATTERN, a glob(3)-style wildcard pattern.
Итак, вы можете запустить:
tar -zcvf /path/to/compressed/"$(date +%d-%m-%Y-%T)"-testdir.tar.gz \
--transform='s|^path/to/||' /path/to/compress \
--exclude='cache' --exclude='logs' --exclude='bootstrap.php.cache'
Обратите внимание, что нет ведущих /
в выражении, используемом с XForm
. Более универсальный подход:
--xform='s|^([^/]*/){2}||x'
, который будет набрать первые два элемента пути (заменить 2 с другим номером - по мере необходимости).