Назад | Перейти на главную страницу

tar слишком медленный, когда файл не существует!

У меня огромный список файлов в виде текстовых файлов. Этот список передается в tar, например:

cat list.txt | xargs tar rvf archive.tar --ignore-failed-read

Проблема в том, что некоторых файлов в списке больше не существует. Таким образом, tar продолжает говорить: «Невозможно статистика: нет такого файла или каталога ...». У меня нет проблем с этим, однако, когда появляются некоторые из этих сообщений, tar зависает и ждет несколько минут, чтобы возобновить действия, что делает резервное копирование очень медленным. Есть идеи, как я могу фильтровать только существующие файлы в tar?

С уважением

Насколько велик список и сколько файлов пропало? Вы можете отфильтровать недостающие файлы?

% cat list.txt 
foo/bar
foo/baz
foo/fred
foo/wilma
betty
% for file in `cat list.txt`; do [ -f $file ] && echo $file; done | xargs tar rvf archive.tar
foo/bar
foo/fred
betty
% tar tvf archive.tar 
-rw-r--r-- scott/scott       0 2011-07-05 10:25 foo/bar
-rw-r--r-- scott/scott       0 2011-07-05 10:25 foo/fred
-rw-r--r-- scott/scott       0 2011-07-05 10:25 betty
% 

Не знаю, лучший ли это способ, но выяснил, что с помощью параметра -T, tar будет намного счастливее. tar rvf archive.tar --ignore-failed-read -T filelist.txt