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/