Распаковывать архив, чтобы посмотреть один файл - долго, неудобно и занимает место. К тому же большинство форматов позволяют работать прямо по месту.
1️⃣ Просмотр содержимого
tar -tf archive.tar.gz # tar
unzip -l archive.zip # zip
7z l archive.7z # 7z
2️⃣ Grep внутри архива (без извлечения)
tar позволяет выводить файлы в stdout, можно grep через pipe:
tar -xOf archive.tar.gz path/to/file.txt | grep "ERROR"
Или искать по всем файлам:
tar -xOf archive.tar.gz $(tar -tf archive.tar.gz) | grep "pattern"
zip не умеет прямой потоковой выдачи всех файлов, но может вывести один:
unzip -p archive.zip logs/app.log | grep "WARN"
7z (лучший вариант для grep по всем файлам)
7z x -so archive.7z | grep "pattern"
Или по конкретному файлу:
7z x archive.7z -so -i!*.log | grep "ERROR"
3️⃣ Поиск файла по части имени
7z l archive.7z | grep "\.conf"
tar -tf backup.tar | grep "nginx"
unzip -l logs.zip | grep ".log"
BashTex 📱 #bash