為什麼這篇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
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的資料
謝謝大大
我是貼上來為了跟文章一致,一個一個去把_ro拿成2
我先進入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)
※ 編輯: liwmewmew 來自: 122.116.220.253 (06/04 13:55)