Com quais opções eu preciso usar findpara excluir arquivos ocultos?
.hidden/visible.txt?
Com quais opções eu preciso usar findpara excluir arquivos ocultos?
.hidden/visible.txt?
Respostas:
Encontrei isso aqui :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)?
\( ! -path '*/.*' \)seria.
Parece que o padrão glob de negação não é bem conhecido. Então você pode usar:
find . -name "[!.]*"
Isso não responde à sua pergunta, mas para a tarefa de encontrar arquivos não ocultos, gosto de deixar encontrar todos os arquivos e filtrá-los com grep.
find . -type f | grep -v '/\.'
Semelhante à sua abordagem, mas talvez um pouco mais simples.
Escrevi um script chamado, findnhque acredito que lida com certos casos extremos 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 especificado explicitamente com um comando como findnh ~/.hiddendir/, que será exibido, ~/.hiddendir/filemas não ~/.hiddendir/.superhiddenfile.
findnh ~/.hiddendir/, não recebo nada. Fora isso, como isso é diferente ! -path '*/.*'e find … | grep -v '/\.'?
fdUse fd, uma alternativa simples, muito mais rápida e fácil de usar find. Por padrão, ele:
.gitignore, por padrão.Verifique a análise de benchmark .
lsmenos que seja especificamente solicitado: eles são arquivos completamente comuns em todos os aspectos, é apenas isso quelspermite ignorá-los por padrão.