Вопрос про bash.

Linux

Допустим в текущем каталоге есть архив samefile*.tar.gz
Его можно найти через find -name samefile*
Как имя этого файла переправить в tar?

Примечание:
$ ls|grep qt*.tar.gz|tar xvfz "$f"
tar: : Невозможно open: Нет такого файла или каталога
tar: Неисправимая ошибка: завершение работы
tar: Child returned status 2
tar: Выход с ошибкой из-за предыдущих ошибок

файл один, связка ls+grep работает отлично

Примечание:
отлично, работает
а без цикла как будет?

Примечание:
а через табуляцию-это как?

Примечание:
ага, сообразил
спасибо
Ответы:
то есть распаковать все подряд? Если вам нужен только текущий каталог, то проще так:
ls | grep samefile.*tar.gz | while read f; do tar xvf "$f"; done;
$ ls | grep qt*.tar.gz|tar xvfz "$f"
$ ls | grep samefile.*tar.gz | while read f; do tar xvf "$f"; done;
P.S. если у вас один единственный файл, то может проще вручную сказать его имя tar-у, воспользовавшись табуляцией для автодоплнения имени файла.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.