Remove todo o arquivo em uma pasta menos um arquivo zipado

1

Como posso remover todos os arquivos em uma pasta menos um arquivo (.zip) da linha de comando? Eu estou usando bash para ssh para o meu servidor onde eu quero fazer isso. Eu sei que eu poderia usar rm -rf * nessa pasta, mas preciso manter o arquivo zipado que contém todos os novos arquivos para substituir os outros. Como posso fazer isso a partir da linha de comando?

    
por rhand 18.08.2012 / 07:03

2 respostas

3
$ shopt -s extglob
$ rm -fr !(*.zip)

info "(bash) Pattern Matching"

   If the extglob shell option is enabled using the shopt builtin, several extended pattern matching  opera‐
   tors are recognized.  In the following description, a pattern-list is a list of one or more patterns sep‐
   arated by a |.  Composite patterns may be formed using one or more of the following sub-patterns:

          ?(pattern-list)
                 Matches zero or one occurrence of the given patterns
          *(pattern-list)
                 Matches zero or more occurrences of the given patterns
          +(pattern-list)
                 Matches one or more occurrences of the given patterns
          @(pattern-list)
                 Matches one of the given patterns
          !(pattern-list)
                 Matches anything except one of the given patterns
    
por 18.08.2012 / 07:07
1

find . ! -name 'file.zip' -delete

encontre o homem

    
por 18.08.2012 / 07:12

Tags