Поиск файла по нескольким .tar.gz архивам одной командой

У меня в директории /arch/logs/ хранятся .tar.gz архивы с логами

Их очень много, чтобы проходиться по каждому по отдельности. Мне нужно найти в этих архивах файл name_01.log

Пытался сделать через xargs, но так и не осилил. Как правильно осуществить поиск моего файла по всем архивам этой директории ?


Ответы (1 шт):

Автор решения: Pak Uula
for t in /arch/logs/*.tar.gz;  do { tar tfz "$t" | grep -q name_01.log; } && { echo "$t"; break; }  done

В цикле переменна t пробегает по всем файлам с расширением tar.gz. Команда tar tf печататает список файлов, grep -q тихо ищет в списке строку name_01.log. Если строка найдена, печатается имя файла и скрипт выходит из цикла.

→ Ссылка