2013-03-25 54 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/ 
相关问题