[爆卦]linux指令ln是什麼?優點缺點精華區懶人包

為什麼這篇linux指令ln鄉民發文收入到精華區:因為在linux指令ln這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者liwmewmew (如果大海能夠)看板Linux標題[問題] link (ln) 的路徑問題時...


各位大大好
最近剛接觸linux,所以主要都是觀察、修改別人的東西來學習
在發此文之前
我有大略翻過網路資料以及用"ln"還有"link"在板上搜尋,但依然沒找到解答
所以才寫了這篇文章,如果有任何不妥,請務必告知,小的會刪文道歉

就ln這指令,我知道的很單純,參數可用f與s
如今我在接觸一隻程式,該程式在etc/目錄下有個a文件(是程式需要的設定檔)
但是該程式的MAKE FILE另開了目錄etc2/,並且在etc2裡有個b檔要連結到a文件
並且程式中存取都是etc2/b檔(etc2跟etc都一樣平起平坐在根目錄)

簡單來說如果在根目錄輸入"ls",可以看到
etc/
etc2/
而進一步探討各自內容則是
etc/a
etc2/b->etc/a

看到這裡我發現了問題所在
因為我按他MAKE FILE弄出來的配置
b根本找不到真正的etc/a
因為"etc2/b->etc/a"這個路徑的意義是,b指向etc2/etc/a
如果我想讓b真的去讀到a,應該要寫b->../etc/a

但那個MAKE FILE或程式,已經擁有實際運作的過去
所以我想請問,是不是我哪裡搞錯了?
是否有什麼方式可以達到ln時,可以指定出絕對的路徑而非相對的路徑?
也代表b指的就是根目錄的etc/a
不論b被移到那裡,都無所謂,他永遠就是指到根目路的etc/a
(就不必考慮b與a之間的相對位置了)
有這辦法嗎?

謝謝各位

--
有種熟悉總在你心裡深處、眼光餘角出現
越是追求越是千里尋不著
日覆一日,漸漸的也就淡忘
實際卻如影隨行、無聲無息的埋藏在潛意識裡‧‧‧
也許夜深人靜時又會不經意的輕敲你心房

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.220.253
DEATHX:ln -s /etc/a 你要連結到的地方 06/04 12:42
DEATHX:你連結時把絕對路徑打上去即可 06/04 12:42
我失敗了呢,不知道是不是誤解你的意思
root@wei-Ubuntu-9-10:/# mkdir etc2
root@wei-Ubuntu-9-10:/# cat etc/a <=確定etc/a的存在
It is etc/a!! <=etc/a的內容寫自己位置
root@wei-Ubuntu-9-10:/# ln -s etc/a etc2/b <=製作link
root@wei-Ubuntu-9-10:/# cat etc2/b <=試著透過b叫出a的內容
cat: etc2/b: No such file or directory

而如果我在etc2裡又創了etc資料夾並且在etc2/etc裡給了個檔案a
內容一樣寫著a檔的位置,也就是"etc2/etc/a"
root@wei-Ubuntu-9-10:/# mkdir etc2/etc
root@wei-Ubuntu-9-10:/# vim etc2/etc/a
root@wei-Ubuntu-9-10:/# cat etc2/b
It is etc2/etc/a
很明顯的,link在創造時,是以b為主的位置去找a
也就是我這篇文章遇到的問題
而MAKE FILE裡在創link時,也是下了 ln -sf etc/a etc/b
也因此我跑程式時,發現程式透過b挖不到a的資料

謝謝大大
bitlife:你 mkdir etc2, 怎麼又跑個 etc_ro 出來? 06/04 13:34
抱歉,這裡純粹筆誤,因為我本身程式是_ro,但是為了方便,所以稱2
我是貼上來為了跟文章一致,一個一個去把_ro拿成2
bitlife:就 cd /etc2 ; ln -s /etc/a b 就好 06/04 13:35
不好意思...結果一樣呢
我先進入etc2裡,然後在裡面ln -s etc/a b
但是那個b,他一樣想找etc2裡面的etc/a
我為了保險,就把etc2裡的etc資料夾與b都砍了
然後再次於etc2資料夾裡輸入ln -s etc/a b
此時的b,一樣,就變找不到資料夾了

謝謝~~

---
我找到問題了
我ln -s etc/a b的指令裡
etc前面少了/
有了/就成功了...看來我觀念有問題...
請問這是回到根目錄的意思嗎?

謝謝
※ 編輯: liwmewmew 來自: 122.116.220.253 (06/04 13:47)
bitlife:你沒加 /,就會等效變成 ln -s ./etc/a b 而你 /etc2目錄 06/04 13:50
bitlife:並沒有 etc目錄,更沒有其下的etc/a 06/04 13:50
bitlife:^當中 (漏字) 06/04 13:51
了解了QQ 謝謝大大
※ 編輯: liwmewmew 來自: 122.116.220.253 (06/04 13:55)
uranusjr:可以找一下「絕對路徑」與「相對路徑」的資料 06/04 13:57
kdjf:我猜他的script的工作目錄是/, 所以不用加/ 06/04 14:28

你可能也想看看

搜尋相關網站