3

Я использую Fedora 17 и bash в качестве оболочки. У меня есть определенный zip-файл, который имеет только одну папку в своем корне. Т.е. после распаковки zip-файла я вижу следующее:

> unzip myzip.zip
> ls
myzip.zip folderThatWasInsideZip

Предположим, вы знаете, что в zip-файле есть только 1 папка, как мне узнать имя главной папки внутри zip-файла, не распаковывая фактически zip-файл?

Я ищу однострочник, который позволил бы мне сделать что-то вроде этого:

> <command> myzip.zip
folderThatWasInsideZip

Я знаю, что есть способы перечислить все файлы в zip с less , но это перечисляет все файлы в подкаталогах и т.д. Я просто хочу знать имя одной папки. Я знаю, что мне не хватает чего-то простого ..

2 ответа2

3

Эта команда, кажется, делает то, что вы хотите:

unzip -qql myzip.zip | head -n1 | tr -s ' ' | cut -d' ' -f5-

Или с помощью GNU sed:

unzip -qql myzip.zip | sed -r '1 {s/([ ]+[^ ]+){3}\s+//;q}'
2

unzip -Z вызывает режим Zipinfo, что означает, что вы можете вызвать unzip -Z -1 myzip.zip | head -1 для того же результата, но это гораздо более кратко

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .