find -name "?"
find ~ -name "?"
¿Por qué uno de estos comandos encuentra .
y el otro no? ¿Cómo puedo hacer que la segunda versión, con una ruta explícita, encuentre la .
entrada junto con cualquier otro archivo de un solo carácter en el directorio especificado?
find (GNU findutils) 4.5.11
por si importa...
Respuesta1
Sin el starting point
for find
, usa .
(el directorio actual). De hecho, estas dos líneas producirán resultados idénticos:
find -name "?"
find . -name "?"
Para poder especificar un punto de partidayBusque find
el .
directorio y agréguelo /.
a su punto de partida, es decir:
find ~/. -name "?"
Editar: Ahora, para la pregunta de por qué, comparemos estos dos comandos:
find ~/. -name "?"
find ~ -name "?"
Hay dos diferencias en su producción. Primero, el comando /.
produce resultados con un extra /.
en cada línea, como era de esperar. En segundo lugar, y esta fue la pregunta fundamental del OP, es que el /.
comando encuentra el ~/.
pseudodirectorio en sí, pero el ~
comando no. Esto se debe a que la ~/.
búsqueda solicita explícitamente .
que se busque. A menos que aparezca en la find
línea de comando, find
ignora los pseudodirectorios .
y . ..
(¿Te imaginas si no fuera así?)
Consulte man find
para obtener más información.