LINUX.ORG.RU

Распаковать *.tar.bz2 в скрипте

 , ,


0

1

Добрый день. Пишу в командной строке

/usr/bin/find ./ -type f -name "*.bz2" -exec /usr/bin/tar -xjf {} \;

Работает правильно. Ставлю в скрипт -

tar (child): bzip2: Функция exec завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
/usr/bin/tar: Child returned status 2
/usr/bin/tar: Error is not recoverable: exiting now

со строчкой

for f in *.tar.bz2; do /usr/bin/tar -xvf "$f"; done

То же самое.

С конструкцией

find | xargs

То же самое

В пути вместо ./ ставил `pwd` - не помогло. Как же заставить это работать из скрипта?



Последнее исправление: wlads (всего исправлений: 1)

a ты выполни в скрипте for f in *.tar.bz2; do echo /usr/bin/tar -xvf "$f"; done

или запускай скрипт через bash -x script

Поймешь в чем дело.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от pinus_nigra

При добавлении ключа j ситуация не меняется

wlads
() автор топика
Ответ на: комментарий от hobbit

От отчаяния :-). Пробовал сначала без путей - ругается.

wlads
() автор топика

То же самое.

«Вы всё врёти». tar -xvf не понимает .bz2. Пишите конкретный скрипт с конкретной ошибкой, пока у вас ни о чём: по всякому примерно как-то пробовал - не помогло.

vodz ★★★★★
()

А ещё… Формально-то оно ругается на bzip2… Он в системе присутствует, просто вызвать его получается?

hobbit ★★★★★
()
Ответ на: комментарий от vodz

Нет. Попробуйте сами. В любом случае с ключём j результат тот же.

wlads
() автор топика
Ответ на: комментарий от vodz
user@comp:/tmp/wlad/1# printenv | grep PATH
MANPATH=/usr/local/man:/usr/man:/usr/share/texmf/man
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/kde4/libexec:/usr/lib/qt/bin:/usr/share/texmf/bin
wlads
() автор топика

Хм… А в виде

for f in *.tar.bz2; do /usr/bin/bunzip "$f"; done
for f in *.tar; do /usr/bin/tar -xvf "$f"; done

Работает.

Workaround is not solution но пока оставлю так. Разбираться позже буду.

wlads
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Там автоопределение обычно работает.

YAR ★★★★★
()

В скрипт засунь, sh -x в шебанге включи.

IPR ★★★★★
()
Ответ на: комментарий от hobbit

На случай если этот скрипт будет выполняться в неподготовленном окружении (например в cron job).

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