2014-01-29 89 views
0

我想沒有......但是:創建一個名爲'dir/file'指向'target_file'的符號鏈接?

如果你有文件〜/富/ foo.jpg和移動,重命名爲〜/ bar.jpg,有沒有什麼辦法讓一個與〜/〜/ bar.jpg之間的符號鏈接(與原始名稱和結構)

~/foo$ ls 
foo.jpg 
~/foo$ mv foo.jpg ~/bar.jpg 
~/foo$ cd ~ 
    ~$ ls 
bar.jpg 
    ~$ ln -s bar.jpg 'foo/foo.jpg' 
    ~$ ls -l 
bar.jpg 
foo/foo.jpg -> bar.jpg 

如果存在如上所述沒辦法,我可以只創建硬鏈接〜/ bar.jpg點朝向〜/富/ foo.jpg。但我寧願沒有目錄foo或文件foo.jpg;只是一個象徵性的鏈接。

+0

我不認爲這是題外話題,但你可能會在http://unix.stackexchange.com/上獲得更多答案,以便解決這類問題。 –

+1

你可以'ln -s〜/ bar.jpg〜/ foo/foo.jpg'。或者我錯過了你的問題?你也可以'ln -s ../bar.jpg〜/ foo/foo.jpg'。 – larsks

+0

@CodyPiersall我會在下次做,謝謝你的建議。如果主持人想要移動它,我不介意。 – gpops

回答

0

編輯:澄清後,你的問題可能會被改寫:「?能否一個符號名稱(或任何Unix/Linux的文件名)包含一個正斜槓/

答案是:否。正斜槓/hard-wired at the file system level作爲路徑分隔符,用於分隔目錄及其內容。

但也許這可以幫助你:

在某些情況下,符號鏈接的目錄是有用的。下面的現有路徑

/a/b/c/d 

可以被符號鏈接到/somewhere

$ ln -s /a /somewhere 

使/somewhere/a/b/c/d成爲一個有效的文件系統路徑:

$ ls /somewhere/ 
a 
$ ls /somewhere/a/ 
b 
# ... etc 

我認爲這是接近你可以得到的。

+0

我在Cody的帖子下的評論中解釋了我正在尋找的內容。所以,理想情況下,我不希望目錄** foo **存在。我希望鏈接的名稱是** foo/foo.jpg **來誘使軟件認爲目錄** foo **仍然存在,並且** foo.jpg **仍在其中。我不認爲這是可能的,但這就是爲什麼我問這裏:) – gpops

+0

@gpops - 我看到,修改後。 '/'在unix文件名中是不可能的,但也許目錄符號鏈接可以幫助你。 – grebneke

1

我的Unix技能不穩定,但是從我對符號鏈接的瞭解,不可能在重命名文件後面創建符號鏈接。這是因爲一個符號鏈接基本上只是指向一個文件的名稱,並不知道它的任何內容;當它指向的文件被移動/刪除時,它只是指向不存在的文件的名稱。

正如你所提到的,你可以通過創建一個硬鏈接來解決你的問題。

參考:http://www.nixtutor.com/freebsd/understanding-symbolic-links/

+0

有一個很好的機會,我誤解了這個問題;如果是這樣,請讓我澄清和/或無禮地降級。 –

+0

謝謝您花時間回覆,但是,我應該進一步澄清我的問題:我正在談論一個洪流客戶端。客戶端正在我的計算機上查找嵌套在特定目錄中的特定文件(即。**〜/ foo/foo.jpg **)。問題是,我把文件移動到另一個目錄並重新命名(即。** bar.jpg **)。我想創建一個名爲** foo/foo.jpg **的指向** bar.jpg **的符號鏈接,以便我的torrent客戶端可以識別它,並且我的目錄/文件名組織保持不變。我在OP中注意到這可能是不可能的,但我不是經驗豐富的Linux用戶,所以我問。 – gpops