bash extended globs :: rm todos os arquivos * .jpg, exceto dois em particular

1

Posso usar padrões de globos estendidos da Bash para implementar a lógica 'AND'? Digamos que eu tenha uma pasta de arquivos jpg (entre outros) e eu quero rm todos os arquivos jpg exceto A.jpg e B .jpg Como eu faria isso sem tentar truques como a continuação dos arquivos temporariamente e assim por diante? Eu acho que o tema geral é como se pode combinar expressões lógicas e negações em globs estendidos Bash.

    
por MarcusJuniusBrutus 11.04.2012 / 13:49

1 resposta

6
shopt -s extglob
rm !(A|B).jpg

!(pattern-list) Corresponde a qualquer coisa, exceto um dos padrões fornecidos.
pattern-list é uma lista de um ou mais padrões separados por ‘|’

Você também pode usar find :

find . -name '*.jpg' ! -name '[AB].jpg' -delete
    
por 11.04.2012 / 13:54

Tags