(2 odpovědi)
Uzavřeno před 3 lety.
Možný duplikát:
Jak linux zpracovává více oddělovačů cest (/home////uživatelské jméno///soubor)
Většina příkazů, které používám v linuxu, se chová úplně stejně, bez ohledu na to, zda vložím koncové lomítko /
znak na konci názvu adresáře nebo ne.
Například:
ls /home/cklein
ls /home/cklein/
cp foo bar
cp foo/ bar/
Kdy toto koncové lomítko záleží? Jaký je sémantický význam koncového lomítka?
Přijatá odpověď:
Jedním dobrým příkladem je přesunutí souboru do adresáře:
mv some_file foo
vs.
mv some_file foo/
Pokud foo
neexistuje, první přejmenuje some_file
na foo
, spíše než zamýšlený foo/some_file
; druhý si bude stěžovat, což je to, co chcete.
Pokud foo
existuje, ale není to adresář, první může blokovat foo
soubor; opět si bude druhý stěžovat.
cp
představuje podobné problémy.
Při práci na některých starých verzích SunOS jsem si vytvořil zvyk přidávat /.
, protože systém ve skutečnosti ignoroval koncový /
na název souboru; například /etc/motd/
by odkazovalo na soubor spíše než na chybu. Zdá se, že novější verze SunOS / Solaris tento problém nemají.