Używam Fedory 17 i bash jako mojej powłoki. Mam określony plik zip, który ma tylko jeden folder w katalogu głównym. Tj. Po rozpakowaniu pliku zip widzę następujące:
> unzip myzip.zip
> ls
myzip.zip folderThatWasInsideZip
Przypuśćmy, że wiesz, że w pliku zip jest tylko jeden folder, jak mogę znaleźć nazwę głównego folderu w pliku zip , bez rozpakowywania pliku zip?
Szukam jednej linijki, która pozwoliłaby mi zrobić coś takiego:
> <command> myzip.zip
folderThatWasInsideZip
Wiem, że istnieją sposoby na wyświetlenie listy wszystkich plików w zipie less
, ale to pokazuje wszystkie pliki w podkatalogach itp. Chcę tylko znać nazwę jednego folderu. Wiem, że brakuje mi czegoś podstawowego ..
Odpowiedzi:
To polecenie wydaje się robić, co chcesz:
Lub z GNU sed:
źródło
unzip
iunzip -l
pokazuje, żeinflate_block()
funkcja nie jest wywoływana za pomocą-l
, tzn. Plik nie jest dekompresowany, odczytywane są tylko metadane.unzip -Z
wywołuje tryb Zipinfo , co oznacza, że możesz zadzwonićunzip -Z -1 myzip.zip | head -1
po ten sam wynik, ale jest o wiele bardziej zwięzłyźródło