一 linux下创建和删除软、硬链接

源文件:指定连接的源文件
    创建硬连接时,则“源文件”参数只能是文件。
    创建软链接时使用ln -s选项,则“源文件”可以是文件或者目录;目标文件:指定源文件的目标连接文件

1、硬链接

ln [参数] (源文件)(目标文件)

ln /root/install.log /root/install.log.txt    #(install.log 链接源文件,install.log.txt 新创建的链接文件)

2、软链接

ln [参数] (源文件或目录) (目标文件)

ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /app/IP      #(ifcfg-eth0 链接源文件,IP 新创建的目标链接文件。)

3、删除链接

rm [参数] (链接名)

rm -rf /app/Ip      #(删除链接文件IP)

二、软硬链接的区别

1、软链接创建时“源文件”可以是文件或目录;
硬链接只能是文件。
2、软链接可以跨驱动器或分区创建链接;
硬链接只能在同一文件系统或分区创建链接。
3、软链接以路径的形式存在,只记录用文件的路径,就像Windows系统里的快捷方式;
硬链接以文件形式存在,不占用实际空间只引用源文件的inode号,一文件系统来说只有一个物理文件。
4、软链接可以对不存在的文件或目录进行连接(错误链接);
硬链接不可以。
5、 软链接指向的是另一个文件的路径;其大小为指向的路径字符串的 长度;
硬链接的大小取决于源文件。
6、软链接不增加或减少目标文件inode的引用计数;
硬链接创建时链接数递增。

[root@centos6 /]# ls -l #用ls -l命令查看链接名称和引用的信息
total 102
lrwxrwxrwx. 1 root root 3 Jan 15 16:00 1 -> tmp #链接数为1
lrwxrwxrwx. 1 root root 3 Jan 15 16:01 2 -> tmp

[root@centos6 app]# ln 456 1 #创建四个硬链接
[root@centos6 app]# ln 456 2
[root@centos6 app]# ln 456 3
[root@centos6 app]# ln 456 4
[root@centos6 app]# ls -l #用ls -l命令查看链接名称和引用的信息
total 40
-rw-r--r--. 5 root root 24 Jan 14 13:12 1 #创建四个硬链接加上源文件,链接数为5
-rw-r--r--. 5 root root 24 Jan 14 13:12 2
-rw-r--r--. 5 root root 24 Jan 14 13:12 3
-rw-r--r--. 5 root root 24 Jan 14 13:12 4

7、硬链接删除文件时:rm命令递减计数的链接,文件要存在至少有一个链接数,当链接数为零时该文件inode号被清空(该文件被删除)

[root@centos6 app]# ls -l #删除前查看链接数
total 20
-rw-r--r--. 5 root root 24 Jan 14 13:12 1 #链接数为5
-rw-r--r--. 5 root root 24 Jan 14 13:12 2
-rw-r--r--. 5 root root 24 Jan 14 13:12 3
-rw-r--r--. 5 root root 24 Jan 14 13:12 4
-rw-r--r--. 5 root root 24 Jan 14 13:12 456
[root@centos6 app]# rm -rf 1 #删除文件(硬链接)1
[root@centos6 app]# ll #查看链接数
total 16
-rw-r--r--. 4 root root 24 Jan 14 13:12 2 #链接数为4
-rw-r--r--. 4 root root 24 Jan 14 13:12 3
-rw-r--r--. 4 root root 24 Jan 14 13:12 4
-rw-r--r--. 4 root root 24 Jan 14 13:12 456
[root@centos6 app]# rm -rf 2 #删除文件(硬链接)2
[root@centos6 app]# ll #查看链接数
total 12
-rw-r--r--. 3 root root 24 Jan 14 13:12 3 #查看链接数为3
-rw-r--r--. 3 root root 24 Jan 14 13:12 4
-rw-r--r--. 3 root root 24 Jan 14 13:12 456
[root@centos6 app]# rm -rf 1 #删除文件(硬链接)1
[root@centos6 app]# rm -rf 2 #删除文件(硬链接)2
[root@centos6 app]# rm -rf 4 #删除文件(硬链接)4
[root@centos6 app]# rm -rf 456 #删除文件(硬链接)456
[root@centos6 app]# ls -l #删除后用ls -l命令查看链接名称和引用的信息
total 4
-rw-r--r--. 1 root root 24 Jan 14 13:12 3 #链接数为1

8、软链接创建时尽量使用相对路径,如果后期数据迁移,新的系统路径与创建时的原始路径会有差异,导致与软件或程序不能正常使用。
硬链接不会出现这些问题,它就是源文件的备份。

Logo

更多推荐