Sua abordagem find . -type f -name '*~' -exec rm -f '{}' \;
tem alguns problemas / escopos de melhoria:
-
-name '*~'
corresponde apenas aos arquivos que terminam em~
; se você quiser corresponder qualquer arquivo contendo~
, use*~*
-
-exec rm -f '{}' \;
está gerandorm
para cada arquivo, que é desajeitado e ineficiente; em vez disso, comorm
pode receber vários arquivos como argumentos, você pode informarfind ... -exec
para obter tantos arquivos de uma só vez sem acionarARG_MAX
usando o argumento+
para-exec
Colocando esses dois juntos:
find . -type f -name '*~*' -exec rm -f {} +
Se acontecer de você ter o GNU find
, você pode usar a ação -delete
:
find . -type f -name '*~*' -delete
Em zsh
, você pode fazer correspondência de padrão recursivo e remoção de uma só vez como:
rm -f -- **/*~*(.)
o modificador% glob.
corresponde apenas a arquivos regulares.