Tečka s lomítkem, ./
, je relativní cesta k něčemu v aktuálním adresáři.
Tečka je aktuální adresář a lomítko je oddělovač cesty.
Když zadáte příkaz touch ./a
řeknete „spusťte touch
nástroj s argumentem ./a
“ a touch
vytvoří (nebo aktualizuje časové razítko) soubor a
v aktuálním adresáři.
Mezi touch a
není žádný rozdíl a touch ./a
protože oba příkazy budou působit na věc zvanou a
v aktuálním adresáři.
Podobným způsobem touch ../a
bude jednat podle a
v adresáři nad aktuálním adresářem jako ..
odkazuje na "jeden adresář dále v hierarchii".
.
a ..
jsou dva speciální názvy adresářů které jsou přítomny v každém adresáři na systémech Unix.
Je užitečné mít možnost zadat ./
někdy před názvem souboru, jako když se pokoušíte vytvořit nebo smazat soubor nebo s ním jen pracovat, jehož první znak v názvu souboru je pomlčka.
Například,
touch -a file
nevytvoří soubor s názvem -a file
a ani by
touch '-a file'
Ale,
touch ./'-a file'
by.
./
zápis je užitečný při pokusu o spuštění skriptu nebo jiného spustitelného souboru v aktuálním adresáři. Na rozdíl od příkazového řádku Windows, unixové (a unixové systémy jako Linux) shelly nekontrolují aktuální adresář pro spustitelné soubory před kontrolou PATH
proměnná prostředí a systémy Unix obvykle nezahrnují ./
v PATH
z bezpečnostních důvodů. Tím, že musíte specifikovat
./executable
spíše než jen
executable
uživatel říká:„ano, dělám chcete spustit tento spustitelný soubor v aktuálním adresáři"
Tomu se říká relativní cesta.
.
představuje aktuální pracovní adresář. Pokud se tedy aktuálně nacházíte v /home/jesse
, .
je jednoduše odkaz na /home/jesse
takže když ukážete na ./
skutečně ukazujete na /home/jesse/