find thumbs/ -not -name "*-s.jpg" -exec mogrify -resize 50% -quality 85 -strip {} \;
Eu tenho pastas e arquivos parece com isso:
/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a.jpg
/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a-s.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d-s.jpg
E eu quero aplicar o seguinte comando aos arquivos que não têm -s em seus nomes em todos os subdiretórios da pasta thumbs.
mogrify -resize 50% -quality 85 -strip filename.jpg
Eu tenho procurado em torno de find e grep, mas não consegui descobrir como posso fazer isso.
Qualquer ajuda apreciada.
Para responder à pergunta no assunto:
find . -name '????????????????????????????????.jpg' -exec cmd {} \;
Para inserir esses 32 ?
s, com tcsh
, zsh
ou bash
no modo emacs
, digite Alt + 3 Alt + 2 ? . Com esses shells e ksh
no modo vi
, insira um ?
, deixe o modo de inserção com Esc e, em seguida, pressione x para cortar esse ?
, e depois 32p
para colá-lo 32 vezes.
Com o GNU find
, você também pode fazer:
find . -regextype egrep -regex '.*/[^/]{32}\.jpg' -exec cmd {} \;
Tags grep ls mogrify shell shell-script