栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Linux 软链接 和 硬链接

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 软链接 和 硬链接

软链接 ln -s a.c b.c
可以看到执行完这条命令后,新生成一个文件b.c且查看文件类型为lrwxrwxrwx 1 lj lj 3 6月 24 22:01 b.c -> a.c 开头的l表示其为链接文件
查看b.c中内容cat b.c ,和a.c中内容一模一样

lj@ubuntu ~ % ls                                                        [0]
a.c    Desktop    Downloads       install_zsh.sh  Pictures  Templates
a.out  Documents  install_vim.sh  Music           Public    Videos
lj@ubuntu ~ % ln -s a.c b.c                                             [0]
lj@ubuntu ~ % ls                                                        [0]
a.c    b.c      Documents  install_vim.sh  Music     Public     Videos
a.out  Desktop  Downloads  install_zsh.sh  Pictures  Templates
lj@ubuntu ~ % ls -l                                                     [0]
总用量 72
-rw-rw-r-- 1 lj lj   328 6月  23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月  23 22:54 a.out
lrwxrwxrwx 1 lj lj     3 6月  24 22:01 b.c -> a.c
drwxr-xr-x 2 lj lj  4096 6月  21 20:52 Desktop
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Documents
drwxr-xr-x 2 lj lj  4096 4月  28 02:59 Downloads
-rw-rw-r-- 1 lj lj  1837 4月  20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj  8457 4月  22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Music
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Pictures
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Public
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Templates
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Videos
lj@ubuntu ~ % cat b.c                                                   [0]


#include

int main(){
    printf("helloworld!n");
    return 0;
}


硬链接 ln a.c c.c
执行完该语句后新生成一个文件c.c,查看文件类型时发现和a.c一模一样。可以看作是对a.c的复制。其内容也和a.c中相同。

lj@ubuntu ~ % ln a.c c.c                                                [0]
lj@ubuntu ~ % ls                                                        [0]
a.c    b.c  Desktop    Downloads       install_zsh.sh  Pictures  Templates
a.out  c.c  Documents  install_vim.sh  Music           Public    Videos
lj@ubuntu ~ % ls -l                                                     [0]
总用量 76
-rw-rw-r-- 2 lj lj   328 6月  23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月  23 22:54 a.out
lrwxrwxrwx 1 lj lj     3 6月  24 22:01 b.c -> a.c
-rw-rw-r-- 2 lj lj   328 6月  23 23:02 c.c
drwxr-xr-x 2 lj lj  4096 6月  21 20:52 Desktop
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Documents
drwxr-xr-x 2 lj lj  4096 4月  28 02:59 Downloads
-rw-rw-r-- 1 lj lj  1837 4月  20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj  8457 4月  22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Music
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Pictures
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Public
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Templates
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Videos
lj@ubuntu ~ % cat c.c                                                   [0]


#include

int main(){
    printf("helloworld!n");
    return 0;
}


更改a.c文件

查看b.c

查看c.c

lj@ubuntu ~ % vim a.c                                                   [0]
lj@ubuntu ~ % cat b.c                                                   [0]


#include

int main(){
    printf("helloworld!n");
    printf("现在对源文件进行更改!n");
    return 0;
}
lj@ubuntu ~ % cat c.c                                                   [0]


#include

int main(){
    printf("helloworld!n");
    printf("现在对源文件进行更改!n");
    return 0;
}
lj@ubuntu ~ %                            

现在,先将a.c更改回来后再删除a.c文件

lj@ubuntu ~ % rm a.c                                                    [0]
lj@ubuntu ~ % ls                                                        [0]
a.out  c.c      Documents  install_vim.sh  Music     Public     Videos
b.c    Desktop  Downloads  install_zsh.sh  Pictures  Templates
lj@ubuntu ~ % ls -l                                                     [0]
总用量 72
-rwxrwxr-x 1 lj lj 16696 6月  23 22:54 a.out
lrwxrwxrwx 1 lj lj     3 6月  24 22:01 b.c -> a.c
-rw-rw-r-- 1 lj lj   328 6月  23 23:02 c.c
drwxr-xr-x 2 lj lj  4096 6月  21 20:52 Desktop
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Documents
drwxr-xr-x 2 lj lj  4096 4月  28 02:59 Downloads
-rw-rw-r-- 1 lj lj  1837 4月  20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj  8457 4月  22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Music
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Pictures
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Public
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Templates
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Videos


可以发现b.c标红
链接文件b.c->a.c同样标红
再次查看b.c和c.c中内容
发现b.c执行错误,cat: b.c: 没有那个文件或目录
c.c中内容可以正常查看

lj@ubuntu ~ % cat b.c                                                   [0]
cat: b.c: 没有那个文件或目录
lj@ubuntu ~ % cat c.c                                                   [1]


#include

int main(){
    printf("helloworld!n");
    return 0;
}

现在,将c.c更名为a.c(即恢复a.c文件)

lj@ubuntu ~ % mv c.c a.c                                                [0]
lj@ubuntu ~ % ls                                                        [0]
a.c    b.c      Documents  install_vim.sh  Music     Public     Videos
a.out  Desktop  Downloads  install_zsh.sh  Pictures  Templates
lj@ubuntu ~ % ls -l                                                     [0]
总用量 72
-rw-rw-r-- 1 lj lj   328 6月  23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月  23 22:54 a.out
lrwxrwxrwx 1 lj lj     3 6月  24 22:01 b.c -> a.c
drwxr-xr-x 2 lj lj  4096 6月  21 20:52 Desktop
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Documents
drwxr-xr-x 2 lj lj  4096 4月  28 02:59 Downloads
-rw-rw-r-- 1 lj lj  1837 4月  20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj  8457 4月  22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Music
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Pictures
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Public
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Templates
drwxr-xr-x 2 lj lj  4096 4月  28 00:43 Videos

可以发现 a.c b.c不再标红

再次查看b.c中内容,这次执行成功

lj@ubuntu ~ % cat b.c                                                   [0]


#include

int main(){
    printf("helloworld!n");
    return 0;
}


总结:

  1. 软链接语句为ln -s 源文件 软链接文件
    硬链接语句为 ln 源文件 硬链接文件
  2. 软链接文件相当于指针,指向源文件,文件大小一般较小
    硬链接文件相当于复制,文件大小和源文件相同
  3. 软链接指向的源文件被删除后,指针失效,软链接文件内容无法查看
    硬链接被创造的源文件被删除后,对硬链接文件无影响,可以正常使用
  4. 若软链接文件指向的源文件被恢复,软链接文件内容同样恢复
  5. 若源文件发生变动,软链接和硬链接文件同步更新
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号