Exclui arquivos ocultos ao pesquisar com o Unix / Linux find?

34

Quais opções eu preciso usar com find para excluir arquivos ocultos?

    
por therefromhere 15.06.2010 / 23:19

7 respostas

15

Eu encontrei este aqui :

find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
    
por 15.06.2010 / 23:23
13

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.

    
por 13.12.2011 / 22:41
10

Parece que o padrão glob de negação não é bem conhecido. Então você pode usar:

find . -name "[!.]*"
    
por 12.11.2015 / 09:15
7

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).

    
por 20.04.2015 / 11:38
2

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 .

    
por 22.10.2014 / 17:49
0

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.

    
por 03.05.2018 / 15:38
0

fd

Use fd , uma alternativa simples, muito mais rápida e amigável para find . Por padrão, ele:

  • Ignora diretórios e arquivos ocultos, por padrão.
  • Ignora os padrões do seu .gitignore , por padrão.

Verifique a Análise de referência .

    
por 03.05.2018 / 15:41