Quero encontrar um arquivo no meu Macbook com o filename: abc.dmg
. Eu tentei usar o foco, mas ele não o encontra. Quando tentei encontrar e usei find -name abc.dmg -path /
:, recebi erros de volta.
Qual é a sintaxe adequada para encontrar um arquivo por nome de arquivo com o comando find em um terminal Mac OSX?
Respostas:
Na sua forma mais simples,
find
assume um parâmetro: o caminho. Na sua forma realmente útil, segue o caminho seguido por critérios de restrição.Assim, você deseja:
find
(o programa)/
(o caminho) e-name abc.dmg
(o critério).fonte
find
importante . Se deve serfind [path]+ [selection, grouping, and actions]
.find . -name '*.csv'
por exemplo, trabalhou para mim com caracteres curinga. OP também pode usarfind . -name '*.dmg'
para verificar seu diretório atual, assumindo que ele estava em/
.fonte
O
mdfind
comando usa o banco de dados Spotlighthttp://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/mdfind.1.html
fonte
Você pode usar o
locate
comandofonte
osx
etiqueta. slocate db não é preenchido por padrão.locate
emdfind
ambos falharem, é provável que o arquivo não esteja na sua máquina. Ou não é nomeado como você acha que é nomeado. talvez procurar TODOS os DMGs possa ser seu próximo passo?A maneira mais simples (que eu tenho certeza que você já tentou, mas, deixe-me adicioná-lo à discussão de qualquer maneira) é inserir abc.dmg na caixa de pesquisa no canto superior direito de qualquer janela do localizador e selecione "Arquivo Nome "nas opções na barra de pesquisa que aparece.
Não há necessidade do terminal.
Lembre-se também de que o Spotlight indexa apenas os diretórios especificados no painel de controle do Spotlight e o abc.dmg pode não estar em um desses diretórios.
Corrija-me se estiver errado, mas acho que o comando find precisa saber o que gerar:
... deve imprimir qualquer resultado no terminal (incluindo erros de permissão).
Se você não deseja erros de permissão e deseja pesquisar em outros diretórios de usuários, então:
fonte
Você pode usar as seguintes funções da linha de comando para localizar e abrir rapidamente o arquivo relevante. Acho isso mais fácil do que digitar uma longa sequência de consultas na janela do Spotlight.
Adicione as seguintes funções em
~/.bash_aliases
.}
Agora,
source ~/.bash_aliases
abra ou abra uma nova função de carregamento de terminal. Para procurar arquivos com palavras, pizza e 2016 em qualquer lugar no nome do arquivo, façaNão há necessidade de anexar ou anexar
*
à sua consulta como padrão de pesquisa,'*$1*'
já identifica a entrada de curinga no início e no final da consulta. Adicionalcd
é para nãofred
diferenciar maiúsculas de minúsculas e ignorar marcas diacríticas, por exemplo, retornará Frédéric e FrEDeric.findpaper
restringirá a pesquisa aos resultados em um caminho específico (recursivo) enquantoopenpaper pie*201
abrirá um (ou primeiro de vários resultados) resultado da pesquisa ouopenpaper pie*201 3
abrirá a entrada do terceiro resultado. Para evitar a abertura de scripts bash ou outros arquivos não documentais, você pode restringir o conteúdo do arquivo por atributos de pesquisa adicionais. Consulte Sintaxe de expressão de consulta de metadados de arquivo e https://ss64.com/osx/mdfind.html para usar outros operadores de pesquisa.fonte
Capture uma lista de todos os arquivos no seu disco como root em /
Coloque o arquivo inteiro no grep para pesquisar a unidade inteira:
Use expressões regulares para mostrar apenas arquivos .jpg e .dmg:
Resultado:
... etc Infelizmente, também capturamos todos os discos montados, para melhor ejetar aqueles do Time Machine, pois eles têm muitos links. Então, em outra janela, corro, o
watch tail -n 10 ~/file-list.txt
que mostra onde está o meu truque covarde!fonte
sudo find / > ~/file-list.txt
parece melhor do que executar todo o shell como root. (2)find *
pulará objetos ocultos (pontos) (se houver) em/
. (3)&>
é um basismo. (4) Uso inútil decat
. (5)grep abc.dmg
imprimirá, por exemplo/foo/bar/123abcXdmg456/baz/whatever
. // Uma coisa boa que sua resposta traz para esse segmento (e a outra resposta não) é a abordagem em que o usuário executafind
uma vez e depois reutiliza o resultado salvo várias vezes sem consultar o (s) sistema (s) de arquivos repetidamente. Essa vantagem potencial não é acentuada.