Para deshacerse de los errores de permisos (y demás), puede redirigir stderr a ninguna parte
find / -name "something" 2>/dev/null
"Desafortunadamente, esto parece verificar solo el directorio actual, no toda la carpeta". Presumiblemente, quiere decir que no se ve en los subdirectorios. Para arreglar esto, usa find -name "filename"
Si el archivo en cuestión no está en el directorio de trabajo actual, puede buscar en toda su máquina a través de
find / -name "filename"
Esto también funciona con cosas como find / -name "*.pdf"
, etc. A veces también me gusta canalizar eso en una declaración grep (ya que, al menos en mi máquina, resalta los resultados), así que termino con algo como
find / -name "*star*wars*" | grep star
Hacer este o un método similar me ayuda a encontrar instantáneamente el nombre del archivo y reconocer si es realmente el archivo que estoy buscando.
El find
el comando llevará mucho tiempo, la forma más rápida de buscar un archivo es usando locate
comando, que busca nombres de archivos (y rutas) en una base de datos indexada (actualizada por el comando updatedb
).
El resultado aparecerá inmediatamente con un simple comando:
locate {file-name-or-path}
Si no se encuentra el comando, debe instalar mlocate
paquete y ejecute updatedb
Comando primero para preparar la base de datos de búsqueda por primera vez.
Más detalles aquí:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
Si necesita encontrar anidado en algunos directorios:
find / -type f -wholename "*dirname/filename"
O directorios conectados:
find / -type d -wholename "*foo/bar"