Linux 建立链接 ln
ln命令用于为文件创建链接。
Linux链接包括两种:软链接与硬链接。
1 软链接
Linux软链接与Windows的快捷方式相同:
当文件所在文件夹深度较深时,可以在桌面等位置创建一个软链接,方便操作。
软链接本身是一个新的文件,其中存储的原始文件的路径。
软链接可针对文件与文件夹进行创建。
在浏览器中查看,软链接图标的左下角有下箭头。
/bin是/usr/bin/的软链接;/lib是/usr/lib/的软链接。
2 硬链接
Windows中没有硬链接这个概念。
硬链接的基本理解:“文件名称备份”。
1)针对文件每次创建一个硬链接,相当于这份文件多出一个文件名,文件数据不会复制;
2)多个硬链接对应的是同一份文件数据;
3)当原始文件与所有硬链接被删除时,文件才会被删除。
用户能为文件创建硬链接,而无法为文件夹创建硬链接。
3 语法
ln [选项] 源文件 链接
4 常用选项
选项 | 作用 |
---|---|
-s | 创建软链接。默认为硬链接。 |
5 软链接示例
例1:为文件 /xiaobu1/sub2/sub3/file1.txt 创建软链接 /file1.txt
准备数据
mkdir -p /xiaobu1/sub2/sub3/
echo xiaobuteach.com > /xiaobu1/sub2/sub3/file1.txt
创建软链接
ln -s /xiaobu1/sub2/sub3/file1.txt /file1.txt
测试
cat /file1.txt
正确显示源文件内容。
查看文件的inode编号与链接数:
源文件的软链接的Inode不同,Links分别为1。说明两者本质是两个不同的文件。
例2:为文件夹 /xiaobu1/sub2/sub3 创建软链接 /sub3
ln -s /xiaobu1/sub2/sub3 /sub3
测试。 通过软链接进行ls操作
ls /sub3
6 硬链接示例
例1:为文件 /xiaobu1/sub2/sub3/file2.txt 创建硬链接 /file2.txt
准备数据
rm -rf /xiaobu1/sub2/sub3/file2.txt
echo www.xiaobuteach.com > /xiaobu1/sub2/sub3/file2.txt
创建硬链接
ln /xiaobu1/sub2/sub3/file2.txt /file2.txt
测试
cat /file2.txt
正确显示源文件内容。
查看两个文件的Inode编号与链接数。
两个文件的Inode编号相同,说明两者是同一个文件。
一个Inode文件增加一个硬链接,则链接数Links加1 。
7 应用
软件链接的常见应用:
1)建立快捷方式:用更简单的路径访问文件。
2)切换版本:例如python版本管理,重建链接指向不同的python版本,达到切换版本目的。
硬链接的常见应用:
1)多用户权限:针对不同用户建立不同的访问权限
2)文件"备份":建立一个硬链接,相当于建立一个"备份",删除原始文件名,文件仍不会删除。