¿Por qué a veces se encuentra? y a veces no?

¿Por qué a veces se encuentra? y a veces no?
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.11por si importa...

Respuesta1

Sin el starting pointfor 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 findel .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 findlínea de comando, findignora los pseudodirectorios .y . ..(¿Te imaginas si no fuera así?)

Consulte man findpara obtener más información.

información relacionada