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}'
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 ..
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