2013-03-25 40 views
1

例如,我的目錄是這樣的:之間是什麼真正使文件和ln差異-s

lib 
| 
+--foo.so 
+--bar.so -> bar.so.1.0.0.0 
+--bar.so.1.0.0.0 

這些是兩種方式總是一樣的嗎?

我之所以問這個問題是,我發現UNIX將複製到真正使文件的時候我

cp -r lib /path/to/ 

新目錄是這樣的:

/path/to/lib 
| 
+--foo.so 
+--bar.so 
+--bar.so.1.0.0.0  
+0

「cp -a lib/path/to /」是否解決了這個問題? – 2013-03-25 03:14:46

+0

儘管從標題中不會立即明白它會是這種情況,但我認爲您會發現[版本號,次版本和版本之間的區別]的一些信息(http://stackoverflow.com/q/ 15454516/15168)有幫助;它是關於共享對象的版本號。 – 2013-03-25 03:15:36

+0

@JonathanLeffler感謝您有用的外部知識。 – MoreFreeze 2013-03-25 05:51:44

回答

1

sols -s之間的區別是文件和符號鏈接之間的區別。符號鏈接就像其他文件的別名,並且對它們的操作會導致鏈接文件的更改。當您執行cp時,它會將鏈接文件複製到目標目錄,並將鏈接名稱作爲文件名,即當鏈接文件打開符號鏈接以複製鏈接文件時,它會讀取鏈接文件。因此,失去鏈接,而是得到鏈接文件的副本。如果您使用cp命令的-P選項,則可以保留符號鏈接信息。

cp -P lib /path/to/ 
相關問題