(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í.