Com quais opções eu preciso usar find
para excluir arquivos ocultos?
.hidden/visible.txt
?
Com quais opções eu preciso usar find
para 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, findnh
que 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/file
mas não ~/.hiddendir/.superhiddenfile
.
findnh ~/.hiddendir/
, não recebo nada. Fora isso, como isso é diferente ! -path '*/.*'
e find … | grep -v '/\.'
?
fd
Use 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 .
ls
menos que seja especificamente solicitado: eles são arquivos completamente comuns em todos os aspectos, é apenas isso quels
permite ignorá-los por padrão.