Mam 348 plików zip i chcę znaleźć plik, który znajduje się w jednym z plików zip, unzip -lczy nie działa z dzikimi kartami?
Jak mogę wyświetlić zawartość wszystkich .zipplików i greppoprzez scaloną listę wszystkich plików zawartych w zamkach?
Mam 348 plików zip i chcę znaleźć plik, który znajduje się w jednym z plików zip, unzip -lczy nie działa z dzikimi kartami?
Jak mogę wyświetlić zawartość wszystkich .zipplików i greppoprzez scaloną listę wszystkich plików zawartych w zamkach?
Odpowiedzi:
Korzystanie zipinfojest tutaj dobrym rozwiązaniem. Jednak na ogół, gdy chcesz zastosować polecenie do listy plików, a polecenie nie akceptuje listy plików, możesz użyć forpętli:
for file in *.zip; do
unzip -l "$file"
done \
| grep "\.zip\|setup"
Jeśli plik, którego szukasz, zawiera spacje, takie jak your file:, w wyrażeniu regularnym grep musisz uciec każdego spacji ukośnikiem odwrotnym grep "\.zip\|your\ file".
unzip, jak żenujące.
findzamiast.
Możesz użyć zipinfo. Jest on zawarty w domyślnej instalacji Ubuntu. Sprawdź stronę podręcznika, aby uzyskać więcej informacji.
Na przykład, aby wyszukać wzór setupw wiązce plików zip w bieżącym katalogu, użyj tego polecenia:
find ./ -iname *zip 2> /dev/null -print0 | xargs -0 zipinfo | grep setup
caution: filename not matched: case1.zip... caution: filename not matched: case348.zipza każdy zip, przetestowany na dwóch systemach operacyjnych Ubuntu, 11.10 i 12.04.
setupi wyświetla ten sam błąd, chociaż działa tak:zipinfo -l * | grep "setup"
Aby wyświetlić listę plików w archiwum zip, możesz użyć następującego polecenia.
unzip -l
Aby grep skompresowane archiwum należy użyć skompresowanych narzędzi archiwizacyjnych zbudowanych do pracy z tego typu formatem archiwum.
W przypadku archiwów zip:
zipgrep --help
usage: zipgrep [egrep_options] pattern zipfile [members...]
Uses unzip and egrep to search the zip members for a string or pattern.
W przypadku archiwów tar:
zgrep --help
Usage: /bin/zgrep [OPTION]... [-e] PATTERN [FILE]...
Look for instances of PATTERN in the input FILEs, using their
uncompressed contents if they are compressed.
OPTIONs are the same as for 'grep'.
Istnieje również kilka innych narzędzi, które działają również z archiwami. Możesz potokować wyjście wstawione do grep, aby zrobić to samo.
zcat
zcat my.archive.zip | grep "some text"
Lub możesz skorzystać z funkcji wyszukiwania tych narzędzi
zless
zmore