Исключение каталога при создании файла .tar.gz

У меня есть папка /public_html/, в этой папке есть папка /tmp/, у которой есть 70gb файлов, которые мне действительно не нужны.

Теперь я пытаюсь создать .tar.gz из /public_html/ исключая /tmp/

Это команда, которую я запускал:

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 

tar все еще создается, и, делая ls -sh, я вижу, что MyBackup.tar.gz уже имеет около 30gb, и я точно знаю, что /public_html/ без /tmp/ не имеет более 1 ГБ файлы.

Что я сделал не так?

Ответ 1

Попробуйте удалить последний/в конце пути к каталогу, чтобы исключить

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp" 

Ответ 2

Попробуйте переместить --exclude до включения.

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/ 

Ответ 3

Да, удалите конечный / и (по крайней мере, в ubuntu 11.04) все указанные пути должны быть относительными или полными. Вы не можете смешивать абсолютные и относительные пути в одной и той же команде.

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"

не будет исключать каталог журналов, но

sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"

будет работать

Ответ 4

Правильная команда для исключения каталога из сжатия:

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/

Обязательно установите - исключить перед исходными и целевыми элементами.

и вы можете проверить содержимое файла tar.gz без разархивирования:

tar -tf backup.tar.gz

Ответ 5

Попробуйте это

tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp

Ответ 6

Вы также можете исключить более одного, используя только один --exclude. Как этот пример:

tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/

В --exclude= вы должны закончить имя каталога без / и должны --exclude= между MyBackup.tar.gz и /home/user/public_html/

Синтаксис:

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>

Ответ 7

Принятый ответ не работал для меня, запуская unxutils tar на windows10. Вместо этого мне пришлось поместить файлы /dirs в архив как последний параметр, например:

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/

Тогда это сработало.

Ответ 8

Это сработало для меня:

tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"

Ответ 9

Необязательный параметр должен включать знак = и " не требуется.

--exclude=/home/user/public_html/tmp

Ответ 10

@Ivan Avery Frey Вы правы.