GNU/Linux >> Znalost Linux >  >> Linux

Kdy bych měl použít koncové lomítko v adresáři?

Tato otázka zde již obsahuje odpovědi :lomítko (/) za názvem adresáře v příkazech shellu

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


Linux
  1. Proč používáme „./“ (lomítko) ke spuštění souboru v Linuxu/unixu?

  2. Linux – Kdy nemám zabít -9 A proces?

  3. Je Rsync ~/foo Target/foo stejný jako Rsync ~/foo/ Target/foo/?

  1. Kdy a proč bych měl používat Apt-get Update?

  2. Kdy mám použít TCP_NODELAY a kdy TCP_CORK?

  3. Použití / při použití cd

  1. Kdy použít Nohup?

  2. Proč nemohu použít CD ve skriptu Bash?

  3. Použít Sed k nahrazení řetězce řetězcem obsahujícím název adresáře (tj. lomítko „/“)?