例如,我的目录如下:
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 :(得分:1)
so
和ls -s
之间的差异是文件和符号链接之间的差异。符号链接类似于其他文件的别名,对它们的操作会导致链接文件发生更改。执行cp
时,它会将链接文件复制到目标目录,并将链接名称作为文件名,即,当它打开符号链接进行复制时,它会读取链接文件。因此丢失链接,而是获取链接文件的副本。如果使用-P
命令的cp
选项,则可以保留符号链接信息。
cp -P lib /path/to/