Como posso compactar o conteúdo do diretório atual menos todos os arquivos ocultos?

2

Como posso compactar o conteúdo (excluindo arquivos e pastas ocultos) da pasta em que estou atualmente?

zip -r extension.xpi . -x "*/.*"

Isto é o que eu tenho até agora, mas ainda estou recebendo arquivos ocultos.

    
por ATLChris 20.02.2013 / 01:46

2 respostas

2

seu */.* incluirá apenas arquivos ocultos em subdiretórios. mas não em seu diretório atual ou subdiretórios de subdiretórios. tente este zip -r extension.xpi . -x ".*" ou esse zip -r extension.xpi . -x .\* .

Eu acho que a barra invertida deve ser a chave, isso é uma citação da manpage:

Explicitly exclude the specified files, as in:

zip -r foo foo -x \*.o

which will include the contents of foo in foo.zip while excluding all the files that end in .o. The backslash avoids the shell filename substitution, so that the name matching is performed by zip at all directory levels.

    
por 20.02.2013 / 02:37
0

A resposta aceita não funcionou para a seguinte estrutura de diretórios de teste:

$ tree .
.
├── adir1
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── adir2
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── adir3
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── afile1
├── afile2
├── afile3
├── foo.test

Essa foi a solução que funcionou para esse cenário (que, acredito, é o caso mais geral).

 $ find . -type f -not -path '*/\.*' -exec zip -r test.zip {} +

Exemplo

$ find . -type f -not -path '*/\.*' -exec zip -r test.zip {} +
updating: adir1/afile1 (stored 0%)
updating: adir1/afile1.zip (stored 0%)
updating: adir1/afile2 (stored 0%)
updating: adir1/afile3 (stored 0%)
updating: adir1/afile4.txt (stored 0%)
updating: adir2/afile1 (stored 0%)
updating: adir2/afile2 (stored 0%)
updating: adir2/afile3 (stored 0%)
updating: adir2/afile4.txt (stored 0%)
updating: adir3/afile1 (stored 0%)
updating: adir3/afile2 (stored 0%)
updating: adir3/afile3 (stored 0%)
updating: adir3/afile4.txt (stored 0%)
updating: afile1 (stored 0%)
updating: afile2 (stored 0%)
updating: afile3 (stored 0%)
updating: foo.test (deflated 87%)
    
por 25.05.2017 / 22:18

Tags