Linux的软硬链接以及CP间的区别
Liunx中的软链接和硬链接学习
一 背景
最近在玩manjaro,在装些软件和工具的时候,用到了软硬链接和CP,在此做个笔记,加深一下印象!
二 软链接:
{width=90%}
1.类似window系统下的快捷方式,作用可以将一个复杂目录下的文件链接到一个简单的目录下,因为复杂目录很难记住,如果要去执行的话,还得去复杂目录下找,这就很麻烦。
2.软链接和被链接的文件指向不同的innode索引结点。
3.删除软连接,并不会影响原来的链接,如果源文件删除了,那么软链接就变成了死链接。
4..软链接的数据块存放的只是目的文件的路径名,然后通过一层层的路径查找取找到对应的文件目录项中索引结点指向的文件。
5.软链接是可以对不同跨挂载点的文件进行软链接的。
6.软链接其实表示的也是文件的另一位置,通常用于链接到/usr/bin,直接从根环境下输出,而不用每次都去相应目录中启动服务或者进程等。
7.命令为 ln -s <linked_path> [new_path]
三 硬链接:
{width=90%}
1.硬链接也不会消耗硬盘的空间,因为创建硬链接其实是对该文件的count(链接计数器)+1,当count变成0,也就意味着该文件确实被删除了。
2.因此我们可以从count+1,推断出,也就是一个文件可以创建多个硬链接,也可以将硬链接理解为为文件创建的别名,那么顺理成章,别名就可以有多个。
3.这些“别名”,硬链接之间指向同一个文件,彼此是隔离的,也就是删除某一个文件的硬链接,对该文件的另外硬链接没有影响。
4.硬链接也可以被称之为拷贝和同步,修改不同的硬链接,因为他们指向共同的对象,因此源文件和硬链接都会修改,如果要备份源文件,用CP,不要用硬链接。
5.硬链接不能用于跨挂载点的链接,这个我试过,是不会产生硬链接的。
6.硬链接与CP指令也是有区别的,主要是硬链接并不会创建新的innode(索引节点),而是指针指向的关系,但是CP会完全复制文件的全部内容,生成新的innode,因此会占用多余物理内存。
7.所以为了能够跨挂载点进行链接,可以考虑使用CP或者软链接。只不过CP会多占用物理内存空间。
8.命令为 ln <linked_path> [new_path]
软链接,硬链接和CP的区别类似与Python中的对象的引用和深拷贝的区别!
坚持下去,做最好的自己!!!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!