linux_软硬连接和基础符号

1.硬链接 ln 源文件,目标文件
硬链接 1.是指通过inode(索引节点)来进行连接的
    2.多个文件指向同一个索引节点
            3.硬链接文件就相当于文件的另外一个入口
            4.作用:备份 防止数据误删



[root@localhost oldboy]# ls -l a
-rw-r--r-- 1 root root 1 9月 16 09:08 a
[root@localhost oldboy]# ln a b
[root@localhost oldboy]# ls -l a
-rw-r--r-- 2 root root 1 9月 16 09:08 a

[root@localhost oldboy]# ls -li a b
102264608 -rw-r--r-- 2 root root 1 9月 16 09:08 a
102264608 -rw-r--r-- 2 root root 1 9月 16 09:08 b

5.硬链接文件是普通文件,可以用rm 删除
6.在linux系统中,删除静态文件(没有系统调用)【目录也是文件】的条件是与之相关的所有硬链接文件均被删除
当硬链接的个数为0的时候,文件也就被删除了


----------------------------------------------------------------------------------------------------------------------
[root@localhost ~]# ll -i /var/log/secure /oldboy/secure_hard_link /oldboy/secure_hard_cp
35117922 -rw------- 1 root root 1794 Sep 24 10:13 /oldboy/secure_hard_cp
76818080 -rw------- 2 root root 1794 Sep 24 10:10 /oldboy/secure_hard_link
76818080 -rw------- 2 root root 1794 Sep 24 10:10 /var/log/secure

cp会重新创建一个文件并且复制相同的内容,占用新的空间,新的inode,这是两个文件。
而硬链接实际上是增加了原来文件的count,并创建了一个连接,当你删除一个源文件或者一个硬链接后,count减1,到0后删除文件。


2.软连接 ln -s 源文件 目标文件(目标文件不能事先存在)
1.符号链接 相当于快捷方式(windows)
[root@localhost oldboy]# ln -s a b
2.软连接 和 源文件 是不同类型的文件,也是不同的文件,inode号也不相同

[root@localhost oldboy]# ls -li a b
102264608 -rw-r--r-- 1 root root 1 9月 16 09:08 a
102210579 lrwxrwxrwx 1 root root 1 9月 16 09:27 b -> a

[root@localhost oldboy]# readlink b
a
3. 软连接存放的是文件的路径
4. 删除 源文件 软连接依旧存在,显示为红色闪烁
[root@localhost oldboy]# ls -li a b
ls: 无法访问a: 没有那个文件或目录
102210579 lrwxrwxrwx 1 root root 1 9月 16 09:27 b -> a

5. 作用 可以做数据迁移
打个简单的比喻 你在巷子里开一家超市 ------> 硬链接 超市的两个门
-----> 软连接 十字路口的 牌子(往里走100米 有超市)

关一个门 超市不受影响
超市关了 十字路口的牌子没有用了
小节:
删除软连接文件 对源文件和硬链接文件 都没有影响
删除源文件 硬链接没影响 软连接文件无法打开

目录的连接:
1.目录不可以创建硬链接,但可以创建软连接

[root@localhost oldboy]# mkdir oldboydir
[root@localhost oldboy]# ls
oldboydir
[root@localhost oldboy]# ln oldboydir oldboy_hard_link
ln: "oldboydir": 不允许将硬链接指向目录


[root@localhost oldboy]# ln -s oldboydir oldboydir_soft_link
[root@localhost oldboy]# ls
oldboydir oldboydir_soft_link

2. 目录的硬链接不能跨越文件系统(从硬连接原理可以理解)

3.每个目录下面都有一个硬链接 "." 号,和对应的上级目录的硬链接 ".. "
[root@localhost oldboy]# ls -a oldboydir oldboydir/. -ldi
34508262 drwxr-xr-x 2 root root 6 9月 16 10:10 oldboydir
34508262 drwxr-xr-x 2 root root 6 9月 16 10:10 oldboydir/.

[root@localhost oldboy]# ls -a oldboydir/.. ../oldboy ../oldboy/. -ldi
102266798 drwxr-xr-x 3 root root 50 9月 16 10:13 ../oldboy
102266798 drwxr-xr-x 3 root root 50 9月 16 10:13 ../oldboy/.
102266798 drwxr-xr-x 3 root root 50 9月 16 10:13 oldboydir/..

4. 在父目录里创建一个子目录,父目录的链接数增加1,(每个子目录里面都有.. 指向父目录)
在父目录里面创建文件,父目录的连接不会增加

猜你喜欢

转载自www.cnblogs.com/zhanghongqi/p/11578302.html