LINUX.ORG.RU

перенаправления в zsh и bash


0

0

В поисках вменяемого способа распаковки множественных tar (в связи с тем что tar не может распаковывать по маскам)пришёл к наиболее мне симпатичному варианту

tar -xvi < *.tar
что короче и красивее вариантов с cat и циклом

cat *.tar | tar -xvi

for a in *.tar; tar -xfv $a

но как оказалось этот вариант работает только в zsh, в баше же выдаёт

$tar -xvi < *.tar
bash: *.tar: неоднозначное перенаправление
есть ли волшебные опции шелла, чтобы мой вариант работал и в баше, а то чего то вот хочется универсальности, а копания в направлении глоббинга результата не дали

★★★★★

Ответ на: комментарий от Yareg

куда деваться - буду использовать везде работающие варианты, просто хочется разобраться в разной логике перенаправлений

zolden ★★★★★
() автор топика

> tar не может распаковывать по маскам

Как это понимать?

*.tar | tar -xvi -

не подходит?

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

Просто здесь zsh берёт на себя функции cat (конкатенация файлов), чего шелл, в принципе, не обязан делать.

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

> а ты клёвый(с)

Я знаю.

почему так скучно, вместо интуитивно ожидаемого

Потому что звёздочку раскрывает шелл. До тара она не доходит, к тару приходят имена архивов. А для того, чтобы тар распаковал несколько архивов, перед каждым именем нужен ключ f:

tar -x -f tar1.tar -f tar2.tar

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

о чём собственно и топик, да

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