linux下拷贝动态库遇到的问题

linux默认cp命令是有别名的,也就是说在执行cp命令的时候,实际上执行的是别名的命令。

通过alias命令可以查看当前系统的别名设置情况:

可以看到cp命令已经设置了别名。这样即使使用cp -f也不会生效。

\cp会调用原生cp命令不使用别名,因此能达到效果。

除了\cp外还有一种写法:

#unalias cp

#cp -rf ***

首先取消别名,然后再调用。unalias命令不是永久生效的。

===========
通过ln -s 创建软链接语法为:
ln -s 源文件路径 软链接文件路径
其中,“源文件路径”有绝对路径和相对路径两种,使用时需要注意,不然软链接文件是找不到源文件的。
===
 ln 源文件 新文件                           #创建硬链接

 等效于:cp -l 源文件 新文件       

 ln  -s  源文件 新文件                    #创建软链接

 等效于:cp -s  源文件 新文件


===ln: failed to create symbolic link ‘librdkafka.so’: Operation not supported===
这个问题主要原因是在使用ln创建软连接时候失败了,因为这个文件系统是NTFS,windows上的,通过虚拟机挂载到linux上,所以并不支持ln操作

===软链接与硬链接的特点===
不论是修改源文件(test 文件),还是修改硬链接文件(test-hard 文件),另一个文件中的数据都会发生改变。
不论是删除源文件,还是删除硬链接文件,只要还有一个文件存在,这个文件(inode 号是 262147 的文件)都可以被访问。
硬链接不会建立新的 inode 信息,也不会更改 inode 的总数。
硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode 号是重新计算的。
硬链接不能链接目录,因为如果给目录建立硬链接,那么不仅目录本身需要重新建立,目录下所有的子文件,包括子目录中的所有子文件都需要建立硬链接,这对当前的 Linux 来讲过于复杂。

不论是修改源文件(check),还是修改硬链接文件(check-soft),另一个文件中的数据都会发生改变。
删除软链接文件,源文件不受影响。而删除原文件,软链接文件将找不到实际的数据,从而显示文件不存在。
软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件名及 inode 号。
软链接可以链接目录。
软链接可以跨分区。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章