AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 739463
Accepted
Potter
Potter
Asked: 2023-03-12 09:32:58 +0800 CST2023-03-12 09:32:58 +0800 CST 2023-03-12 09:32:58 +0800 CST

Como listar apenas os primeiros diretórios no arquivo zip?

  • 772

unzip -lmostre todos os diretórios e subdiretórios/arquivos.

Eu gostaria de listar apenas a primeira estrutura de diretórios em um arquivo zip, algo como -maxdepth 1um findcomando.

Existe alguma maneira de fazer isso sem um script inteiro?

linux
  • 2 2 respostas
  • 17 Views

2 respostas

  • Voted
  1. Best Answer
    steeldriver
    2023-03-12T10:03:06+08:002023-03-12T10:03:06+08:00

    Pelo menos com UnZip 6.00distribuições baseadas no Debian, você pode usar a -xopção com curingas conforme descrito em man unzip:

    [-x xfile(s)]
          An optional list of archive members to be excluded from process‐
          ing.   Since  wildcard characters normally match (`/') directory
          separators (for exceptions see the option -W), this  option  may
          be  used  to  exclude any files that are in subdirectories.  For
          example, ``unzip foo *.[ch] -x */*'' would extract all C  source
          files  in  the  main  directory, but none in any subdirectories.
          Without the -x option, all C source  files  in  all  directories
          within the zipfile would be extracted.
    

    Então, por exemplo, dado

    $ unzip -l dir
    Archive:  dir.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  2023-03-11 07:57   dir/
           24  2023-03-11 12:50   dir/file
         1464  2023-03-04 12:51   dir/input.csv
          187  2023-03-06 09:03   dir/input
            0  2023-02-28 10:25   dir/subdir3/
            0  2023-02-28 10:25   dir/subdir3/Files.txt
           55  2023-02-28 10:51   dir/file2
           26  2023-03-10 20:00   dir/utf-16BE.txt
            0  2023-02-28 10:25   dir/subdir2/
            0  2023-02-28 10:25   dir/subdir2/File.txt
            0  2023-02-28 10:25   dir/subdir1/
            0  2023-02-28 10:25   dir/subdir1/file.txt
          585  2023-03-01 06:54   dir/source.CSV
          115  2023-02-28 10:50   dir/file1
          211  2023-03-10 09:01   dir/01-netcfg.yaml
    ---------                     -------
         2667                     15 files
    

    então

    $ unzip -l dir -x '*/*/*'
    Archive:  dir.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  2023-03-11 07:57   dir/
           24  2023-03-11 12:50   dir/file
         1464  2023-03-04 12:51   dir/input.csv
          187  2023-03-06 09:03   dir/input
           55  2023-02-28 10:51   dir/file2
           26  2023-03-10 20:00   dir/utf-16BE.txt
          585  2023-03-01 06:54   dir/source.CSV
          115  2023-02-28 10:50   dir/file1
          211  2023-03-10 09:01   dir/01-netcfg.yaml
    ---------                     -------
         2667                     9 files
    
    • 2
  2. Gilles Quénot
    2023-03-12T09:58:08+08:002023-03-12T09:58:08+08:00

    Assim, de forma MCVE :

    curl -s https://gist.githubusercontent.com/sputnick-dev/1d2303e5fb75af8792f828ff33c127af/raw/e42cd4f56ce1b430752269cff2571342b19eb58a/gistfile1.txt | bash
    cd /tmp
    zip -r rand_dirs.zip rand_dirs
    unzip -l rand_dirs.zip |
        grep -oP '^\s+\d+\s+\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}\s+\K[^/]+/[^/]+' |
        sort -u
    

    Saída

    rand_dirs/Yqol
    rand_dirs/yT3oVke
    rand_dirs/yt7p
    rand_dirs/z
    rand_dirs/z8Tx
    rand_dirs/ZaQ7cE
    rand_dirs/zeWgeCr8RbS
    rand_dirs/zVf4
    [...]
    
    • 0

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve