find . -iname '*.zip' | while read file; do unzip -l "$file" | grep -q [internal file name] && echo $file; done


Эта команда используется для поиска файла внутри архивов формата ZIP. Она выполняет следующие действия:

1. find . -iname '*.zip': Находит все файлы с расширением .zip в текущей директории и её поддиректориях.

2. |: Перенаправляет вывод найденных файлов на вход следующей команде.

3. while read file; do ... done: Запускает цикл, в котором каждый найденный файл будет обрабатываться как переменная $file.

4. unzip -l "$file": Отображает содержимое архива без его распаковки.

5. |: Перенаправляет вывод содержимого архива на вход следующей команде.

6. grep -q [internal file name]: Ищет в выводе имя внутреннего файла. Если файл найден, команда завершится успешно (0), иначе — неудачно (1).

7. &&: Запускает следующую команду только в случае успешного завершения предыдущей.

8. echo $file: Выводит имя архива, в котором был найден искомый файл.

Эта команда полезна, когда необходимо найти архив, содержащий конкретный файл, без распаковки всех архивов вручную.

Альтернативой может быть использование графического интерфейса для архивации и поиска файлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *