Il punto-barra, ./ , è un percorso relativo a qualcosa nella directory corrente.
Il punto è la directory corrente e la barra è un delimitatore di percorso.
Quando dai il comando touch ./a dici "esegui il touch utility con l'argomento ./a ", e touch creerà (o aggiornerà il timestamp per) il file a nella directory corrente.
Non c'è differenza tra touch a e touch ./a poiché entrambi i comandi agiranno sulla cosa chiamata a nella directory corrente.
In modo simile, touch ../a agirà sul a nella directory sopra la directory corrente come .. si riferisce a "una directory più in alto nella gerarchia".
. e .. sono due nomi di directory speciali che sono presenti in ogni directory sui sistemi Unix.
È utile poter inserire ./ davanti a un nome di file a volte, come quando stai cercando di creare o eliminare, o semplicemente lavorare con, un file con un trattino come primo carattere nel suo nome file.
Ad esempio,
touch -a file
non creerà un file chiamato -a file , e nessuno dei due
touch '-a file'
Ma,
touch ./'-a file'
lo farebbe.
Il ./ la notazione è utile quando si tenta di eseguire uno script o un altro eseguibile nella directory corrente. A differenza del prompt dei comandi di Windows, le shell Unix (e sistemi simili a Unix come Linux) non controllano la directory corrente per gli eseguibili prima di controllare il PATH variabile d'ambiente, e i sistemi Unix tendono a non includere ./ nel PATH per motivi di sicurezza. Dovendo specificare
./executable
piuttosto che solo
executable
l'utente sta dicendo "sì, lo faccio desidera eseguire questo eseguibile nella directory corrente"
Questo è chiamato percorso relativo.
. rappresenta la directory di lavoro corrente. Quindi, se sei attualmente in /home/jesse , . è semplicemente un collegamento a /home/jesse quindi quando punti a ./ in realtà stai puntando a /home/jesse/