LINUX.ORG.RU

tar, опция --exclude

 


0

1

Привет, ЛОР!
Перестала работать опция --exclude в tar.

$ tar --version
tar (GNU tar) 1.29

Раньше вот такая команда работала без проблем:
$ tar -cvzf name.tar.gz /home/user --exclude=/home/user/dir
Может что-то поменяли в новой версии или баг появился?


Ответ на: комментарий от pi11
$ tar -cvzf --exclude=/home/user/Android name.tar.gz /home/user
tar: name.tar.gz: Функция stat завершилась с ошибкойtar (child): : Нет такого файла или каталога
--exclude=/home/user/Android: Функция open завершилась с ошибкойtar: Удаляется начальный `/' из имен объектов: Нет такого файла или каталога

tar (child): Error is not recoverable: exiting now
/home/user/
/home/user/.aptitude/
/home/user/.aptitude/cache
tar: --exclude=/home/user/Android: Функция write завершилась с ошибкой: Обрыв канала
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Jarvis ()
Ответ на: комментарий от pi11

tar -cvz --exclude=/home/user/dir -f name.tar.gz /home/user

Лишние телодвижения, вот так всё работает тоже:

tar --exclude=/home/user/dir -czvf name.tar.gz /home/user

Deleted ()

Раньше вот такая команда работала без проблем

Она и раньше не работала)

tar считает "--exclude=/home/user/dir" за файл (продолжение списка файлов)

поэтому и надо, как написали выше:

$ tar -cvzf name.tar.gz --exclude=/home/user/dir /home/user --ЭТО-ИМЯ-ФАЙЛА-А-НЕ-ПАРАМЕТР
$ tar --exclude=/home/user/dir -cvzf name.tar.gz  /home/user /home/user2
$ tar -cvz --exclude=/home/user/dir -f name.tar.gz --exclude=*.log --exclude-from=exclude-file-list.lst /home/user

#но и не так:
$ tar -cvzf --exclude=/home/user/dir name.tar.gz  /home/user

samson ★★ ()
Ответ на: комментарий от samson
$ mkdir test1 test2 test3
$ ls
test1  test2  test3
$ touch test1/test-file
$ tree
.
├── test1
│   └── test-file
├── test2
└── test3

3 directories, 1 file
$ tar -cvzf name.tar.gz /home/user/downloads --exclude=/home/user/downloads/test1
tar: Удаляется начальный `/' из имен объектов
/home/user/downloads/
/home/user/downloads/test2/
/home/user/downloads/test3/
$ ls
name.tar.gz  test1  test2  test3
$ tar -tf name.tar.gz 
home/user/downloads/
home/user/downloads/test2/
home/user/downloads/test3/
$ tar --version
tar (GNU tar) 1.27.1
Copyright (C) 2013 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете продавать и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы: John Gilmore и Jay Fenlason.
$
Jarvis ()
Ответ на: комментарий от Jarvis

да вы правы. Однако, man tar и tar --help, для обоих версий - и там и там список файлов в самом конце, после параметров

обновились с jessie до stretch?

samson ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.