¿Qué significa el asterisco "*" en una variable de entorno PATH de Unix?

¿Qué significa el asterisco "*" en una variable de entorno PATH de Unix?

Ejemplo:

# echo $PATH
/home/admin*:*/bin

Supongo que es un comodín de algún tipo, pero ¿tiene un nivel de profundidad o muchos?

Por ejemplo, ¿ */bincoincidirá solo con elementos de usr/bino también coincidirá con elementos más profundos de usr/local/bin and /home/admin/bin? ¿Y /home/admin*coincidirá /home/administratortodo lo que hay debajo, también en múltiples niveles?

Respuesta1

¿Qué significa el asterisco (*) en un $PATH de Unix?

# echo $PATH
/home/admin*:*/bin

Significa que tienes un inválido $PATH.

$PATHno admite comodines.

Respuesta2

Esteotra respuestadice que su $PATHno es válido, pero no estoy de acuerdo.

Esto se debe a que, al bashmenos, no causará ningún error, ya sea cuando lo configure o cuando el shell intente resolver un comando a través de $PATH.

En $PATH, un asterisco significa unliteral *(asterisco).

Es decir, hayNOSe realizó la expansión con comodines y en realidad está verificando el directorio literal /home/admin*, que no existe, por lo que lo omite, y lo verifica */bin, que también se ignora de manera similar.


podercrear directorios con un literal *en ellos (pero... pero...por qué?).
Y, si se hace, entoncesvoluntadmira allí; por ejemplo, en el '*/bin'camino

Entonces, esto realmente funcionaría con el valor $PATH dado:

cd /
mkdir \*
mkdir \*/bin
echo 'echo Hello from \"star\"/bin' > \*/bin/asterisk.bash
chmod 744 \*/bin/asterisk.bash

asterisk.bash

(Si desea probarlo en un directorio local en lugar de en la raíz, simplemente no cdlo haga /)
(Noque recomiendo hacer esto en casa. Hazlo en casa de un amigo :-)

Pero como probablemente lo hiciste de todos modos, bueno, para deshacerte de la ridiculez, los siguientes tres comandos deberían hacerlo.
(NB: yo soynousando rm -ren caso de que algo se escriba mal o el shell en el que estás interprete las cosas de manera diferente).

rm \*/bin/asterisk.sh
rmdir \*/bin
rmdir \*

información relacionada