LinuxForum.Fans
Тема

tar не дружит с контейнером

Автор: enRai 5 сообщений 1546 просмотров
#44232

Здравствуйте! Проблема следующая...

text

$ ls|grep tar.gz|tar xzvf -

gzip: stdin: not in gzip format tar: Child returned status 1 tar: Выход, отложенный по результатам предыдущих ошибок

text

$ uname -srv
Linux 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009

Гугл молчит... Подскажите решение, пожалуйста. Заранее спасибо.

#44245

enRai,
А что Вы планировали сделать этой командой?

#44250

В итоге в планах было распаковать файл, сделать для него:

text

tar xzvf file.tar.gz;grep -v text file > tmp;mv tmp file;tar cxvf file.tar.gz file

Но только чтобы применимо не к file.tar.gz было, а ко всем *.tar.gz

То есть перебрать все архивы, убрать ненужную строку и опять все упаковать.

Да и еще в каждом архиве может быть несколько файлов :)

#44291
enRai написал:
Да и еще в каждом архиве может быть несколько файлов

эх...
дык и сделали-бы... есть команда find, с опцией -exec, она всё сделает.
вместо временного файла можно использовать конвейр.

enRai написал:
убрать ненужную строку и опять все упаковать.

строку или файл?

#44371
drBatty написал:
строку или файл?

Необходимо убрать строку из файла.

Вот что-то напечатал:

text

ls|grep tar.gz|xargs -L 1 tar xzvf|xargs -L 1 -I {} sh -c "grep -v hello {} > tmp ; mv tmp {} ; tar czvf {}.tar.gz {} ; rm {}"

Но это для одного файла в архиве. И еще проблема:

text

$ ls|grep tar.gz|xargs -L 1 tar xzvf|xargs -L 1 -I {} sh -c "grep -v hello {} > tmp ; mv tmp {} ; tar czvf {}.tar.gz {} ; rm {}"
grep: 1: No such file or directory
1
2
3

То есть первый файл всегда не находит. Как будто бы tar сначала рапортует в stdout то что он будет делать, а потом уже делает... Как бы исправить...

Войдите или зарегистрируйтесь, чтобы ответить.