Me han dicho que ejecute esto:
./yiic message ./app/messages/config.php
Pero no entiendo el ./
significado, ¿alguien puede aclarar por favor?
Nota: Créeme, no podemos googlear eso. He intentado:
./ significado ./ ubuntu
Era lo mismo que nada. :(
Respuestas:
./
o simplemente.
es la abreviatura de Unix para el directorio actual.Debe especificarlo cuando el directorio actual no está en su RUTA. La RUTA es la lista de carpetas buscadas cuando ejecuta un programa. (Puede determinarlo escribiendo
echo $PATH
). Si un archivo ejecutable no está en su RUTA, para ejecutarlo debe especificar la carpeta en la que se encuentra. Puede hacerlo dando la ruta completa al archivo, pero si el archivo está en el directorio actual, puede usar./
como taquigrafía.Del mismo modo,
../
o simplemente..
es una forma abreviada para el directorio sobre el actual.fuente
.
. Es porque usar automáticamente el directorio actual es un agujero de seguridad. Imagine que alguien más crea un programa, lo nombra als
usted y a ustedcd
en su directorio, luego escribals
Cada directorio en la línea de comando tiene dos "directorios especiales" llamados
.
y..
. Estos son abreviaturas para, respectivamente, el directorio actual y el directorio que contiene el directorio actual.Entonces, por ejemplo,
cd ./more/directory/names
solo significa "comenzar en el directorio actual y continuar en la ruta". Del mismo modo, el comandocd ..
significa "cambiar un directorio hacia arriba.Si desea el nombre de su directorio actual, puede usar el
pwd
comando. Además, si usa la-a
bandera parals
, puede ver estos dos directorios especiales. Es decir,ls -a
generará una lista que comienza con.
y..
.fuente
Otros ya han explicado qué
.
y qué..
significa (directorio actual y el directorio padre respectivamente). Esto se aplica a todos los nombres de ruta.Cuando abre una terminal, generalmente comienza en su directorio de inicio:
~
(que se expande a/home/username
). Las siguientes rutas son todas equivalentes, siempre que su directorio de trabajo actual sea/home/username
:/home/username
.
../username
../../home/username
../../../home/username
(el directorio padre de/
todavía está/
)./././././.
(el directorio actual en el directorio actual en el ...)./
(se permiten barras diagonales finales para los directorios)/home////username///
(y también lo son las barras múltiples)No , no confundir
./program
con. program
../program
ejecuta un archivo en el directorio actual con el conjunto de bits de ejecución.. ./program
es una cosa bash y, alternativamente, se puede escribir comosource ./program
que lee los comandos bash delprogram
archivo en el directorio actual y los ejecuta en el shell actual.Si se pregunta por qué solo puede ejecutar en
gedit
lugar de/usr/bin/gedit
y no enprogram
lugar de./program
o/home/username/program
, consulte la pregunta relacionada:fuente
Significa comenzar desde el
current directory path
.Asumamos que tienes algo
path
como esto:y dentro
/usr/bin/
hay un ejecutable llamadoyiic
.Si lo emite
yiic
, comenzaría el de adentro/usr/bin/
.Al emitir,
./yiic
le dice al sistema que busque dentro del directorio actual este ejecutable.fuente
/home/mysuser/
y que navego allí usandocd /home/myuser
. Una vez dentro, creí que hacer solo yiic, debería funcionar porque llamé mientras estaba en ese directorio. Pero él dice comando no archivo. Si hago lo mismo y uso el ./ entonces, se ejecuta correctamente ... ¿Pueden aclarar un poco más?.
es un archivo especial dentro de una carpeta que puede ver al hacer unls -la
en el directorio;)