Eu encontrei este aqui :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
Quais opções eu preciso usar com find
para excluir arquivos ocultos?
Eu encontrei este aqui :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
Isso não responde à sua pergunta, mas para a tarefa de encontrar arquivos não ocultos, eu gostaria de deixar encontrar todos os arquivos, em seguida, filtrar com o grep.
find . -type f | grep -v '/\.'
Semelhante à sua abordagem, mas talvez um pouco mais simples.
Parece que o padrão glob de negação não é bem conhecido. Então você pode usar:
find . -name "[!.]*"
Tente o seguinte find
usage:
find . -type f -not -path '*/\.*'
Que ignora todos os arquivos ocultos (arquivos e diretórios que começam com um ponto).
Eu escrevi um script chamado findnh
, que acredito lidar com certos casos de borda melhor do que as respostas a essa pergunta que consegui encontrar na Web.
#!/bin/bash
declare -a paths
while [ $# -ne 0 ]; do
case "$1" in -*) break ;; esac
paths+=("$1")
shift
done
find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"
Por exemplo, você pode encontrar arquivos e diretórios não ocultos dentro de um diretório oculto explicitamente especificado com um comando como findnh ~/.hiddendir/
, que mostrará ~/.hiddendir/file
, mas não ~/.hiddendir/.superhiddenfile
.
Se o objetivo for find
e grep
, ripgrep
exclui arquivos ocultos por padrão, por exemplo
rg --files
--files
Print each file that would be searched without actually performing the search.
fd
Use fd
, uma alternativa simples, muito mais rápida e amigável para find
. Por padrão, ele:
.gitignore
, por padrão. Verifique a Análise de referência .
Tags command-line find linux unix