Aunque algunos otros han respondido bien a esto, me gustaría agregar algunas ideas:
1) PATH solo se consulta si el ejecutable invocado no tiene elementos de ruta en él. algún comando se buscaría en $ PATH ./somecommand
o /usr/bin/somecommand
, o ../../bin/somecommand
simplemente usaría reglas de directorio, no PATH
Si hay varios archivos ejecutables en PATH con el mismo nombre, ¿cuál es el preferido?
Se detiene en el primero que encuentra, leyendo $ PATH de izquierda a derecha.
¿Se incluye el directorio actual en la búsqueda cuando se ejecuta el archivo?
Si el directorio actual está en RUTA, entonces se busca. Recuerde que un directorio vacío en PATH incluye el directorio actual. por ejemplo, RUTA =: / usr / bin (inicial vacía) RUTA = / usr / bin: (final vacía) y RUTA = / usr / bin :: / bin (medio vacío) incluirán efectivamente el directorio de trabajo actual.
Supongamos que hay un archivo con el nombre ejecutable.sh en un directorio actual. ¿Funcionaría si se ejecuta $ ejecutar y. no es parte del camino?
Nunca lo encontraría al buscar RUTA. Si el directorio actual no está en PATH, no lo encontrará mediante una búsqueda de PATH.
Dicho esto (y lamento añadir confusión) si hubiera un alias o función que ejecutara el comando, se ejecutaría. O si su shell tenía un caché de ubicación y el ejecutable estaba en el caché, puede encontrarlo. Por lo tanto, nunca lo encontrará en PATH, pero puede ejecutarse por otros medios.
which <executable>
comando será útil en este hilo.