软链接 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.cDesktopDownloadsinstall_zsh.shPicturesTemplates
a.outDocumentsinstall_vim.shMusicPublicVideos
lj@ubuntu ~ % ln -s a.c b.c[0]
lj@ubuntu ~ % ls[0]
a.cb.cDocumentsinstall_vim.shMusicPublicVideos
a.outDesktopDownloadsinstall_zsh.shPicturesTemplates
lj@ubuntu ~ % ls -l[0]
总用量 72
-rw-rw-r-- 1 lj lj328 6月23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月23 22:54 a.out
lrwxrwxrwx 1 lj lj3 6月24 22:01 b.c -> a.c
drwxr-xr-x 2 lj lj4096 6月21 20:52 Desktop
drwxr-xr-x 2 lj lj4096 4月28 00:43 Documents
drwxr-xr-x 2 lj lj4096 4月28 02:59 Downloads
-rw-rw-r-- 1 lj lj1837 4月20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj8457 4月22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj4096 4月28 00:43 Music
drwxr-xr-x 2 lj lj4096 4月28 00:43 Pictures
drwxr-xr-x 2 lj lj4096 4月28 00:43 Public
drwxr-xr-x 2 lj lj4096 4月28 00:43 Templates
drwxr-xr-x 2 lj lj4096 4月28 00:43 Videos
lj@ubuntu ~ % cat b.c[0]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint 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.cb.cDesktopDownloadsinstall_zsh.shPicturesTemplates
a.outc.cDocumentsinstall_vim.shMusicPublicVideos
lj@ubuntu ~ % ls -l[0]
总用量 76
-rw-rw-r-- 2 lj lj328 6月23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月23 22:54 a.out
lrwxrwxrwx 1 lj lj3 6月24 22:01 b.c -> a.c
-rw-rw-r-- 2 lj lj328 6月23 23:02 c.c
drwxr-xr-x 2 lj lj4096 6月21 20:52 Desktop
drwxr-xr-x 2 lj lj4096 4月28 00:43 Documents
drwxr-xr-x 2 lj lj4096 4月28 02:59 Downloads
-rw-rw-r-- 1 lj lj1837 4月20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj8457 4月22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj4096 4月28 00:43 Music
drwxr-xr-x 2 lj lj4096 4月28 00:43 Pictures
drwxr-xr-x 2 lj lj4096 4月28 00:43 Public
drwxr-xr-x 2 lj lj4096 4月28 00:43 Templates
drwxr-xr-x 2 lj lj4096 4月28 00:43 Videos
lj@ubuntu ~ % cat c.c[0]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint main(){
printf("helloworld!\n");
return 0;
}
文章图片
更改
a.c
文件文章图片
查看
b.c
文章图片
查看
c.c
文章图片
lj@ubuntu ~ % vim a.c[0]
lj@ubuntu ~ % cat b.c[0]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint main(){
printf("helloworld!\n");
printf("现在对源文件进行更改!\n");
return 0;
}
lj@ubuntu ~ % cat c.c[0]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint main(){
printf("helloworld!\n");
printf("现在对源文件进行更改!\n");
return 0;
}
lj@ubuntu ~ %
【linux|Linux 软链接 和 硬链接】现在,先将
a.c
更改回来后再删除a.c
文件lj@ubuntu ~ % rm a.c[0]
lj@ubuntu ~ % ls[0]
a.outc.cDocumentsinstall_vim.shMusicPublicVideos
b.cDesktopDownloadsinstall_zsh.shPicturesTemplates
lj@ubuntu ~ % ls -l[0]
总用量 72
-rwxrwxr-x 1 lj lj 16696 6月23 22:54 a.out
lrwxrwxrwx 1 lj lj3 6月24 22:01 b.c -> a.c
-rw-rw-r-- 1 lj lj328 6月23 23:02 c.c
drwxr-xr-x 2 lj lj4096 6月21 20:52 Desktop
drwxr-xr-x 2 lj lj4096 4月28 00:43 Documents
drwxr-xr-x 2 lj lj4096 4月28 02:59 Downloads
-rw-rw-r-- 1 lj lj1837 4月20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj8457 4月22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj4096 4月28 00:43 Music
drwxr-xr-x 2 lj lj4096 4月28 00:43 Pictures
drwxr-xr-x 2 lj lj4096 4月28 00:43 Public
drwxr-xr-x 2 lj lj4096 4月28 00:43 Templates
drwxr-xr-x 2 lj lj4096 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]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint 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.cb.cDocumentsinstall_vim.shMusicPublicVideos
a.outDesktopDownloadsinstall_zsh.shPicturesTemplates
lj@ubuntu ~ % ls -l[0]
总用量 72
-rw-rw-r-- 1 lj lj328 6月23 23:02 a.c
-rwxrwxr-x 1 lj lj 16696 6月23 22:54 a.out
lrwxrwxrwx 1 lj lj3 6月24 22:01 b.c -> a.c
drwxr-xr-x 2 lj lj4096 6月21 20:52 Desktop
drwxr-xr-x 2 lj lj4096 4月28 00:43 Documents
drwxr-xr-x 2 lj lj4096 4月28 02:59 Downloads
-rw-rw-r-- 1 lj lj1837 4月20 02:34 install_vim.sh
-rw-rw-r-- 1 lj lj8457 4月22 14:43 install_zsh.sh
drwxr-xr-x 2 lj lj4096 4月28 00:43 Music
drwxr-xr-x 2 lj lj4096 4月28 00:43 Pictures
drwxr-xr-x 2 lj lj4096 4月28 00:43 Public
drwxr-xr-x 2 lj lj4096 4月28 00:43 Templates
drwxr-xr-x 2 lj lj4096 4月28 00:43 Videos
可以发现
a.c
b.c
不再标红文章图片
再次查看
b.c
中内容,这次执行成功lj@ubuntu ~ % cat b.c[0]
/*************************************************************************
> File Name: a.c
> Author:
> Mail:
> Created Time: 2022年06月21日 星期二 20时56分54秒
************************************************************************/#includeint main(){
printf("helloworld!\n");
return 0;
}
总结:
- 软链接语句为ln -s 源文件 软链接文件
硬链接语句为 ln 源文件 硬链接文件 - 软链接文件相当于指针,指向源文件,文件大小一般较小
硬链接文件相当于复制,文件大小和源文件相同 - 软链接指向的源文件被删除后,指针失效,软链接文件内容无法查看
硬链接被创造的源文件被删除后,对硬链接文件无影响,可以正常使用 - 若软链接文件指向的源文件被恢复,软链接文件内容同样恢复
- 若源文件发生变动,软链接和硬链接文件同步更新
推荐阅读
- Linux基础|Linux基本操作命令
- 【技术杂文】系列|嵌入式端的神经网络算法部署和实现综合
- 三种方法检查ssl证书
- Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
- Linux|转载(Linux的二号功臣-Alan Cox)
- GNU、Linux和GNU/Linux之间的关系
- 内核|linux(使用yum安装_首次使用Linux:30个安装案例)
- PHP|PHP 解压 ZIP 压缩包,解决多级中文乱码问题
- linux搭建redis