Quiero encontrar un archivo en mi Macbook con el nombre: abc.dmg
. He tratado de usar Spotlight, pero no lo encuentra. Cuando intenté encontrar, y usé:, find -name abc.dmg -path /
obtuve errores.
¿Cuál es la sintaxis adecuada para encontrar un archivo por nombre de archivo con el comando find en un terminal Mac OSX?
Respuestas:
En su forma más simple,
find
toma un parámetro: la ruta. En su forma realmente útil, toma el camino seguido de criterios de estrechamiento.Por lo tanto, quieres:
find
(el programa)/
(el camino), y-name abc.dmg
(el criterio).fuente
find
importante . Si debe haberfind [path]+ [selection, grouping, and actions]
.find . -name '*.csv'
por ejemplo me funcionó con comodines. OP también podría usarfind . -name '*.dmg'
para verificar su directorio actual, suponiendo que estuviera en él/
.fuente
El
mdfind
comando usa la base de datos de Spotlighthttp://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/mdfind.1.html
fuente
Puedes usar el
locate
comando.fuente
osx
etiqueta. slocate db no se rellena de forma predeterminada.locate
ymdfind
ambos fallan, es probable que el archivo no esté en su máquina. O no se llama como crees que se llama. ¿Quizás buscar TODOS los DMG sea tu próximo paso?La forma más simple (que estoy seguro de que ya lo has intentado, pero bueno, déjame agregarlo al hilo de todos modos) es ingresar abc.dmg en el cuadro de búsqueda en la parte superior derecha de cualquier ventana del buscador, luego selecciona "Archivo Nombre "de las opciones en la barra de búsqueda que aparece.
No hay necesidad de la terminal.
Recuerde también que Spotlight solo indexa los directorios especificados en el panel de control de Spotlight y es posible que abc.dmg no esté en uno de esos directorios.
Corrígeme si estoy equivocado, pero creo que el comando find necesita saber qué generar:
... debe imprimir cualquier resultado en el terminal (incluidos los errores de permiso).
Si no desea errores de permisos y desea buscar en otros directorios de Usuarios, entonces:
fuente
Puede usar las siguientes funciones de línea de comandos para buscar y abrir rápidamente archivos relevantes. Esto me resulta más fácil que escribir una larga cadena de consulta en la ventana de Spotlight.
Agregue las siguientes funciones en
~/.bash_aliases
.}
Ahora,
source ~/.bash_aliases
abre o abre una nueva función de carga de terminal. Para buscar archivos con palabras, pie y 2016 en cualquier parte del nombre del archivo, hagaNo hay necesidad de anteponer o agregar
*
a su consulta como patrón de búsqueda,'*$1*'
ya etiqueta la entrada de comodín al comienzo y al final de su consulta. Adicionalcd
es para mayúsculas y minúsculas e ignorar los signos diacríticos, por ejemplo,fred
devolverá ambos, Frédéric y FrEDeric.findpaper
restringirá la búsqueda a los resultados bajo una ruta específica (recursiva) mientrasopenpaper pie*201
abrirá un resultado de búsqueda (o el primero de varios resultados) oopenpaper pie*201 3
abrirá la entrada del tercer resultado. Para evitar abrir scripts de bash u otros archivos que no sean documentos, puede restringir el contenido del archivo mediante atributos de búsqueda adicionales. Consulte Sintaxis de expresión de consulta de metadatos de archivo y https://ss64.com/osx/mdfind.html para usar otros operadores de búsqueda.fuente
Capture una lista de cada archivo en su disco como root desde /
Cat el archivo completo a través de grep para buscar la unidad completa:
Use expresiones regulares para mostrar solo archivos .jpg y .dmg:
Resultado:
... etc. Desafortunadamente, también capturará todos los discos montados, por lo que es mejor expulsar aquellos Time Machine que tienen muchos enlaces. ¡Así que en otra ventana corro
watch tail -n 10 ~/file-list.txt
que me muestra dónde está en mi truco horrible!fuente
sudo find / > ~/file-list.txt
parece mejor que ejecutar todo el shell como root. (2)find *
saltará objetos ocultos (punto) (si los hay) en/
. (3)&>
es un bashismo. (4) Uso inútil decat
. (5)grep abc.dmg
imprimirá, por ejemplo/foo/bar/123abcXdmg456/baz/whatever
. // Una cosa buena que su respuesta aporta a este hilo (y otra respuesta no) es el enfoque en el que el usuario ejecutafind
una vez y luego reutiliza el resultado guardado varias veces sin consultar los sistemas de archivos una y otra vez. Sin embargo, esta ventaja potencial no se acentúa.