El punto-barra, ./
, es una ruta relativa a algo en el directorio actual.
El punto es el directorio actual y la barra es un delimitador de ruta.
Cuando das el comando touch ./a
dices "ejecutar el touch
utilidad con el argumento ./a
", y touch
creará (o actualizará la marca de tiempo) el archivo a
en el directorio actual.
No hay diferencia entre touch a
y touch ./a
ya que ambos comandos actuarán sobre la cosa llamada a
en el directorio actual.
De manera similar, touch ../a
actuará sobre el a
en el directorio sobre el directorio actual como ..
se refiere a "un directorio más arriba en la jerarquía".
.
y ..
son dos nombres de directorio especiales que están presentes en todos los directorios de los sistemas Unix.
Es útil poder poner ./
delante de un nombre de archivo a veces, como cuando intenta crear o eliminar, o simplemente trabajar con un archivo con un guión como primer carácter en su nombre de archivo.
Por ejemplo,
touch -a file
no creará un archivo llamado -a file
, y tampoco lo haría
touch '-a file'
Pero,
touch ./'-a file'
lo haría.
El ./
La notación es útil cuando se intenta ejecutar un script u otro ejecutable en el directorio actual. A diferencia del símbolo del sistema de Windows, los shells de Unix (y los sistemas similares a Unix como Linux) no verifican el directorio actual en busca de ejecutables antes de verificar el PATH
variable de entorno, y los sistemas Unix tienden a no incluir ./
en el PATH
por razones de seguridad. Al tener que especificar
./executable
en lugar de solo
executable
el usuario está diciendo, "sí, lo hago desea ejecutar este ejecutable en el directorio actual"
Esto se llama una ruta relativa.
.
representa el directorio de trabajo actual. Entonces, si actualmente está en /home/jesse
, .
es simplemente un enlace a /home/jesse
entonces cuando apuntas a ./
realmente estás apuntando a /home/jesse/