O argumento para -regex
precisa corresponder ao caminho inteiro encontrado. Um comando como find .
encontra caminhos como ./dir/subdir/somefile
, enquanto um comando como find ~/dir
encontra caminhos como /home/adam/dir/subdir/somefile
. Então seu regexp tem que combinar com o
/home/adam
part no começo.
O comando find -E . -type f -regex '^\..*[^~]'
localiza arquivos cujo nome não contém uma nova linha e não termina com ~
. O .
no início sempre corresponde desde que o caminho começa com ./
.
Se você estivesse procurando por arquivos de ponto, precisaria permitir um prefixo de diretório. O comando a seguir mostra arquivos de pontos cujo nome não termina em ~
:
find -E /whatever -regex '(\n|.)*/\.[^/]*[^~]'
Mas isso é mais simples de expressar com -name
:
find /whatever -name '.*[!~]'