Я создаю tar.gz
файл, содержащий следующие файлы и папки:
/bin/tar cfz /usr/local/backups/mybackup-${DATENAME}.tar.gz
/usr/local/backups/db-${DATENAME}.sql.gz
/usr/local/tomcat/webapps/MyApp/myapp_folder
/usr/local/tomcat/myapp.properties
Но пути хранятся как usr/local
это без /
. tar
также дает сообщение для удаления первым /
но файл создается.
Теперь, когда я передаю этот файл в другую систему и хочу его распаковать:
tar -zxvf mybackup-2011-APR-18.tar.gz
Это создает usr
каталог в текущем каталоге.
Как сжать и распаковать архив и вернуть файлы в исходные папки (в /usr
дерево вместо ./usr
)?
Это сделает это:
(cd / && tar -zxvf mybackup-2011-APR-18.tar.gz )
В качестве альтернативы вы можете создать архив с помощью -P:
/bin/tar -P cfz /usr/local/backups/mybackup-${DATENAME}.tar.gz
/usr/local/backups/db-${DATENAME}.sql.gz
/usr/local/tomcat/webapps/MyApp/myapp_folder
/usr/local/tomcat/myapp.properties
Это не приведет к удалению начального / из имен файлов в архиве.