Pregunta ¿Cómo encontrar un directorio en Linux?


Tengo un VPS con Suse Linux 10.3.

He iniciado sesión a través de SSH / masilla y estoy tratando de encontrar dónde se encuentran mis archivos web.

Como estoy cargando a través de FTP en un directorio llamado httpdocs, Supongo que este directorio existe en alguna parte.

Mis búsquedas de Google me han enseñado a hacer esto, vaya a mi directorio raíz y escriba:

find httpdocs -type d

pero dice "El fichero o directorio no existe".

¿Cómo puedo encontrar este directorio?


396


origen


En caso de que alguien se pregunte, el comando en la pregunta encuentra todos los directorios (-type d) en la entrada del directorio httpdocs (relativo al directorio de trabajo actual, generalmente pero no necesariamente un directorio). Falla con mensaje de error porque no hay entrada de directorio httpdocs en el directorio raíz del sistema y, por lo tanto, no es un punto de partida para una búsqueda. - Daniel Beck♦


Respuestas:


Es:

find / -type d -name 'httpdocs'

el primer parámetro "/" es donde buscar, en este caso "/" es todo el sistema.

-name podría ser -imame para ignorar el caso

también-tipo no es obligatorio

utilizar : hombre encuentra para más opciones


543



find / -name 'httpdocs' funciona de maravilla gracias - Edward Tanguay
Puede que no importe para búsquedas simples, pero para comandos de búsqueda más complejos, vale la pena señalar que las cosas se evalúan en el orden en que están en la línea de comandos. Por lo tanto, es posible que desee tener -type d (solo directorios) before -name, para acelerar las cosas. Nuevamente, esto puede no importar mucho aquí, pero cuando se realizan búsquedas más complejas, puede mejorar considerablemente la velocidad de búsqueda. - Dominic Eidson
En realidad, el -name la prueba es más rápida que la mayoría de las otras pruebas desde -name se compara con la lista del directorio, que ya está cargada desde el disco, y las otras pruebas deben realizar un stat(2) para obtener información de archivo. Después de la primera stat() pide un archivo, las pruebas subsiguientes se obtienen de la memoria, por ejemplo: -type f -mtime -10. - Arcege
Si va a realizar una búsqueda en todo el sistema de archivos, especialmente un servidor, entonces generalmente es bueno usar nicepor lo que el hallazgo no requiere demasiados recursos de procesos más críticos: nice find / ... - Arcege
Agregaría 2> / dev / null para evitar que mis resultados de búsqueda se oculten en todos los errores de permiso. - Jason Yeo


este comando debería proporcionarle lo que está buscando:

find / -type d -name httpdocs

que buscará desde la raíz de su servidor directorios con el nombre de httpdocs o si solo desea buscar desde el directorio actual, reemplace el '/' con un '.'

Otro comando que puedes probar es localizar que harías algo como:

locate httpdocs

59



localizar httpdocs me dice "localizar: comando no encontrado" - Edward Tanguay
Para aquellos que usan el comando "localizar" (dado que existe en su sistema), asegúrese de que la base de datos que busca esté actualizada; normalmente, algún trabajo cron se ocupa de ello. De lo contrario, ejecute "updatedb" (siendo root). Luego ejecute su "locate <somefile>" necesario. Esto es necesario para encontrar archivos / directorios recientemente agregados. - David Ramirez
+1 para localizar. Sus mucho más rápido, pero solo si su índice está actualizado. Afortunadamente, algo como "httpdocs" no cambiará la ubicación con frecuencia. Si planea buscar repetidamente archivos en una máquina, vale la pena los minutos necesarios para configurar la tarea cron actualizadab. - Doug Harris
También en muchos casos, locate devolverá demasiados resultados ya que aparecerán todos los 100k archivos en ese directorio. En este caso particular, si cada usuario tiene sus propios httpdocs con 100 o 1000 de archivos, el resultado que desea OP probablemente se perderá. - Jistanidiot
+1 para localizar ... Mantengo actualizada mi base de datos por lo que este comando es muy útil ... Gran idea. - nicorellius


find / -type d -name httpdocs 2> /dev/null

Esto eliminará todos los mensajes de error que probablemente obtendrá (leer, siempre) cuando no haga esto como usuario root. Recomendaría hacerlo de esta manera.


26



los 2> /dev/null la opción es muy útil. De lo contrario, puede ser difícil ver los resultados deseados ... - Gottlieb Notschnabel
Ver también ¿Cómo puedo excluir todos los mensajes de "permiso denegado" de "buscar"? - galath


Es importante conocer el parámetro -nave para buscar patrones "insensibles a mayúsculas y minúsculas" y el uso de comodines: *,?, Etc.

Dos ejemplos:

Buscar todos los archivos de / root que contienen la cadena "Linux", sin distinción de mayúsculas y minúsculas:

find  /root -type f -iname "*linux*"

Buscar todos los directorios de / root que contengan la cadena "Linux", sin distinción de mayúsculas y minúsculas:

find  /root -type d -iname "*linux*"

Extraído de aquí:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


10



Esta pregunta se trata de cómo encontrar un directorio cuyo nombre conozca, no cómo encontrar un directorio cuyo nombre conozca (aproximadamente). Además, la respuesta aceptada (¡desde hace más de 6 años!) Ya menciona -iname como una alternativa insensible a mayúsculas y minúsculas -name. - G-Man


casi lo tienes. la sintaxis correcta sería:

find / -type d -name httpdocs

El directorio es probable bajo /var/www/


9



eso me dice "los caminos deben preceder a la expresión" - Edward Tanguay