Descubra o nome de uma pasta em um diretório raiz dentro do arquivo .zip

3

Estou usando o Fedora 17 e bash como meu shell. Eu tenho um arquivo zip específico, que tem apenas uma pasta em sua raiz. Ou seja ao desembalar o arquivo zip eu vejo o seguinte:

> unzip myzip.zip
> ls
myzip.zip folderThatWasInsideZip

Supondo que você saiba que há apenas 1 pasta compactada no arquivo zip, como descobrir o nome da pasta principal dentro do arquivo zip , sem descompactar o arquivo zip?

Estou procurando uma linha única que me permita fazer algo assim:

> <command> myzip.zip
folderThatWasInsideZip

Eu sei que existem maneiras de listar todos os arquivos no zip com less , mas isso lista todos os arquivos nos subdiretórios, etc. Eu só quero saber o nome da pasta. Eu sei que estou perdendo algo básico ..

    
por Jan Hrcek 14.11.2012 / 08:12

2 respostas

3

Este comando parece fazer o que você quer:

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

Ou com o GNU sed:

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

unzip -Z invoca o Modo Zipinfo , o que significa que você pode chamar unzip -Z -1 myzip.zip | head -1 para o mesmo resultado , mas é muito mais conciso

    
por 01.11.2017 / 00:28