Поиск файла по нескольким .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. Если строка найдена, печатается имя файла и скрипт выходит из цикла.