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/