linux中软连接和硬连接的区别

硬连接: 
    创建一个硬连接: ln src ndest
___________________________________________________________________

#ln stat.c aaa

root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ls -il

总用量 16

2097450 -rw-r--r-- 2 root root 1119 2014-09-28 16:33 aaa

2097451 -rwxr-xr-x 1 root root 7514 2014-09-28 16:32 a.out

2097450 -rw-r--r-- 2 root root 1119 2014-09-28 16:33 stat.c

为stat.c 建立一个硬连接aaa,
    1.硬连接文件和源文件共享inode 节点,所以inode节点号一样:2097450;
    2.打开stat.c 和aaa 有相应的两个文件描述符和文件表项,但是共享inode节点;
    3.硬连接文件和源文件属于同一级别;
    4.如果要删除文件stat.c需要其硬连接数变为0;

    5.再同一系统内,源文件目录无论怎么改变,都能通过硬连接文件找到;

硬链接文件有两个限制 :
     1)、不允许给目录创建硬链接; 
     2)、只有在同一文件系统中的文件之间才能创建链接;
___________________________________________________________________
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ln stat.c bbb
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ls
aaa  a.out  bbb  stat.c
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ls -il
总用量 20
2097450 -rw-r--r-- 3 root root 1119 2014-09-28 16:33 aaa
2097451 -rwxr-xr-x 1 root root 7514 2014-09-28 16:32 a.out
2097450 -rw-r--r-- 3 root root 1119 2014-09-28 16:33 bbb
2097450 -rw-r--r-- 3 root root 1119 2014-09-28 16:33 stat.c
___________________________________________________________________


软连接(符号连接):
     建立一个新的软连接:ln -s src dest
___________________________________________________________________
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ln -s stat.c aa
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ls -il
总用量 12
2097459 lrwxrwxrwx 1 root root    6 2014-09-28 16:57 aa -> stat.c
2097451 -rwxr-xr-x 1 root root 7514 2014-09-28 16:32 a.out
2097458 -rw-r--r-- 1 root root 1119 2014-09-28 16:54 stat.c
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ln -s aa bb
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# ls -il
总用量 12
2097459 lrwxrwxrwx 1 root root    6 2014-09-28 16:57 aa -> stat.c
2097451 -rwxr-xr-x 1 root root 7514 2014-09-28 16:32 a.out
2097460 lrwxrwxrwx 1 root root    2 2014-09-28 16:58 bb -> aa
2097458 -rw-r--r-- 1 root root 1119 2014-09-28 16:54 stat.c
root@ubuntu-desktop:/opt/qy1408/sys/day3/stat# 
___________________________________________________________________
建立一个软连接之后:
    1.软连接文件和源文件各自都有各自的inode节点
    2.可以通过软连接文件访问源文件,但是如果源文件目录改变,则无法通过软连接文件找到
    3.符号连接文件本身存放的是源文件的文件地址
    ssize_t readlink(const char *path, char *buf, size_t bufsiz);
          读取软连接文件本身的信息

硬连接文件和软连接文件的优缺点:
    1.在同一系统中硬连接访问效率高,但是硬连接不能跨系统访问

    1.在同一系统中软连接访问效率比硬连接底,但是软连接可以跨系统访问(优点)


注意文件操作时几个常用的函数:

创建硬连接:int link(const char *path1, const char *path2);

创建软连接:int symlink(const char *path1, const char *path2);

删除现有目录:int unlink或remove(const char *path);

打开软连接文件的信息:ssize_t readlink(const char *restrict path, char *restrict buf,size_t bufsize);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值