Necesito encontrar una imagen, digamos ABC.jpg, que sé que se habrá colocado programáticamente en un directorio llamado ABC_MPSC. He intentado:
cd /
find . -name "ABC_MPSC/ABC.jpg"
Pero eso no devuelve nada (en realidad sé dónde está el que estoy buscando, así que sé que existe). ¿Existe un comando de búsqueda que me permita no tener que buscar manualmente?

locate, que debería ser significativamente más rápido, pero solo funciona si el archivo ya existía laupdatedbúltima vez que se ejecutó.Respuestas:
Hay un
-pathpredicado que es útil aquí:La descripción de POSIX para ese predicado es:
La razón por la que
-name "ABC_MPSC/ABC.jpg"falló es porque el-namepredicado:En otras palabras,
-namenunca ve el directorio del nombre de archivo actual, solo el nombre de archivo base (ABC.jpg, por ejemplo).fuente
Dos formas (aparte de usar
-path):Busque el directorio, luego detecte el archivo:
Esto se basa en la
findimplementación para expandirse{}al nombre de ruta actual del directorio encontrado, aunque esté concatenado con/ABC.jpg(no es necesario hacerlo). También podría escribirse comoBusque el archivo, luego verifique el nombre del directorio principal:
Ambas alternativas serían más lentas que usarlas
-pathcomo lo muestra Jeff. Sin embargo, los dejo aquí como ejemplos, ya que posiblemente podrían adaptarse para otras cosas.fuente