Filenames
在相對路徑中與/ v/sw/o“./”有什麼區別嗎?
是否有任何細微的區別:
file
和
./file
作為相對路徑?
當用作 shell 或
exec*p()
libc 函式中的命令名稱時,file
將file
在$PATH
(或對於 shell,可能呼叫內置版本或該名稱的函式)中查找,同時./file
將執行目前目錄。這並不是
./
觸發特殊行為,只是如果命令名稱不包含任何/
,它會進行$PATH
查找。./cmd
是給出cmd
包含/
.
./
前綴還通常用於確保文件名不以某些命令的問題字元開頭。例如:
rm ./-f
removes
-f
, whilerm -f
會rm
使用-f
選項呼叫(rm -- -f
也可以)。或者:cat ./- awk '{print $1}' ./a==b.txt
哪裡
--
幫不上忙。您會在不知道 的擴展是否會產生有問題的字元的腳本中
rm ./*
發現這一點。awk ... ./*``*