Como pesquiso todos os arquivos ocultos que estão em pastas ocultas usando o Terminal?

10

Preciso encontrar algumas configurações enterradas em algumas pastas ocultas e não consigo me lembrar onde elas devem navegar diretamente para elas Cmd+ Shift+ G.

Fiz um sudo find -name Foo*(lento), mas nenhum dos arquivos retornados estava em pastas ocultas.

Qual é a maneira mais fácil de pesquisar todos os arquivos ocultos?

Old McStopher
fonte
Nota: O uso sudoé desnecessário, a menos que você precise procurar nos diretórios aos quais não tem acesso. A pesquisa em diretórios ocultos não requer privilégios elevados, se é por isso que está sendo usada no seu exemplo.
Chris Page

Respostas:

14

mdfindparece ignorar muitos arquivos ocultos. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'lista .DS_Storearquivos, mas não por exemplo .bash_history. Eu não encontrei nenhuma maneira de procurar arquivos em alguns diretórios ocultos como /private/etc/.

Enfim, Find Any File é muito mais rápido que find.

O Find Any File é um programa para Mac OS X que permite procurar arquivos em seus discos.

  • Ao contrário do Spotlight, ele não usa um banco de dados, mas utiliza as operações de pesquisa rápida do driver do sistema de arquivos, quando disponíveis. Isso permite pesquisar propriedades do arquivo, como nome, datas, tamanho, etc., mas não o conteúdo do arquivo (use o Spotlight ou o EasyFind para isso).
  • O Find Any File pode encontrar arquivos que o Spotlight não encontra, por exemplo, dentro de pacotes e pacotes e em pastas internas que geralmente são excluídas da pesquisa do Spotlight.
  • Finalmente, é bastante rápido. Uma pesquisa leva apenas alguns segundos em um disco rígido interno ou SSD. Tente você mesmo!
Lri
fonte
6

Assumindo que por “arquivo oculto” você quer dizer arquivos cujo nome começa com um ponto ou que estão localizados em algum lugar em um diretório cujo nome começa com um ponto, e não outras formas de arquivos invisíveis , o comando a seguir imprime os nomes de todos os arquivos ocultos. É lento, pois repassa todos os nomes de arquivos em qualquer lugar do seu sistema.

sudo find / -name '.*' \( -type d -exec find {} \; -prune -o -print \)

Explicação:

  • -type d -exec find {} \; -pruneexecuta findem todos os diretórios (cujo nome corresponde .*) e ignora a descida nesse diretório por causa do -prune.
  • -type d … -o -printfaz com que todos os não diretórios correspondentes .*sejam impressos.

Se você estiver procurando por um arquivo com um nome ou padrão específico:

sudo find / -name 'Foo*' -path '*/.*'

O */.*padrão em todo o caminho força as correspondências a estarem em um diretório oculto.

Você pode adicionar -xdevdepois /para evitar atravessar sistemas de arquivos especiais e discos removíveis.

Gilles 'SO- parar de ser mau'
fonte
Ah obrigada. E parece que -x é preferido agora, pois -xdev está obsoleto.
Old McStopher
4

Tente o locatecomando Você precisará sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistprimeiro e aguardar a geração do banco de dados de localização.

Jay Thompson
fonte
3
É um incômodo que o Spotlight não capte arquivos ocultos / (pontos), porque o mdfind é muito superior ao slocate.
21412 Jason Salaz
2

EasyFind é um excelente aplicativo alternativo para fazer o trabalho. É grátis e fácil. Você pode procurar texto em arquivos (mesmo os invisíveis). <= Esta pode ser uma maneira mais fácil de encontrar seus arquivos de configuração.

Você pode obtê-lo na App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Disclaimer: Eu não sou afiliado com o desenvolvedor.

Nohl
fonte
Não funciona em unidades formatadas em APFS.
Victor Engel