Linux中软连接,硬连接,拷贝三者间的区别

硬连接

在Linux的文件系统中,磁盘中存储的文件都会被分配一个索引节点号(inode index),以下简称为节点号,由节点号来唯一的标识某个文件,并且允许不同的文件名指向相同的节点号,这种指向或者连接就称之为硬连接。通过指令ll -i可以查看文件的inode号和连接个数,当某个文件新增一个硬连接,其连接个数就会加一,当删除一个该文件,其连接个数就会减一,当某个文件的连接次数为0就会被文件系统释放,这才是真正意义上的删除。

硬连接的作用是可以允许一个文件放置在多个有效路径中,这些路径中存储的该文件只是一个真实文件的关联,相当于JAVA中的引用,当一个文件还在被引用就不会被释放,没有被引用了就会被文件系统释放掉,在重要文件上使用硬连接可以防止误删导致数据丢失。

软连接

软连接又称为符号连接,其实就是存放某个文件或者文件夹的路径,例如,我们使用ln -s /home/arosy/test.txt test.soft为test.txt建立一个软连接,当我们访问该软连接时,就是访问的/home/arosy/test.txt。

拷贝

拷贝就是完全复制一个文件或者文件夹,在磁盘空间中新开辟一片空间来存放新的文件或文件夹,和被拷贝对象一样的大小,一样的权限,但是inode是重新分配的,这也恰恰说明了这是一个新的对象。

这三者大小的区别

硬连接只是创建了一个关联,所占空间大小是比较小的,具体是多大,需要实际情况来看,但是可以肯定的是一定远小于进行拷贝所占用的空间。

软连接的大小等于其存放的路径字符个数,如,连接的是/home/admin,则其大小为11字节。

拷贝的数据和原数据的大小一样。