Linux中的软链接类似于windows中的快捷方式。
创新互联建站是一家专业提供成武企业网站建设,专注与网站设计制作、网站建设、H5技术、小程序制作等业务。10年已为成武众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
创建方式:ln -s oldfile newfile
例:文件软链接 (目录软链接也是一样的操作方式)
1、tmp 目录下创建一个 test.txt 文件
2、ln -s test.txt test,为 test.txt 文件创建一个名为 test 的软链接
3、ll 查看详情会发现有一个蓝色的 test -- test.txt (test 指向 test.txt)。同时文件类型是 l 开头,l 是指链接文件的意思。
1. 先来了解一下Linux数据是如何保存和查询的
对操作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata)。用户数据就是保存和记录文件的内容。比如一个1M的ppt文件,500K的txt文件。这都属于用户数据。这个文件总有属性吧,比如大小、修改时间、访问时间、创建时间、存储的位置(文件所在的inode)、文件创建者等等信息。这些属性信息或者理解为汇总信息,我们称它为元数据。一句话,用户数据是文件的真实内容,而元数据则是汇总信息。
在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。
2. 查看文件对应的inode号
134474678 latest.tar.gz
linux查看文件对应的inode号
可以看出latest.tar.gz这个文件, inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识,而不是文件名。文件名类似于网站域名,仅仅是方便人类记忆。
也就是说, inode134474678有一个硬链接,它就是latest.tar.gz。
3. 根据inode号查找对应的文件
那么,问题来了,系统上有没有第二个文件,它的inode号码也是13447467。
使用find查找一下:
查找结果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根据inode号查找对应的文件
硬盘上真的有第二个文件它的inode号码也是134474678,像这种情况,我们认为inode134474678有两个硬链接。当然,这是本文作者提前准备好的。
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。
4. 确认硬链接的数量
查看一下文件latest.tar.gz
输出结果如下:
-rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz
请留意输出的结果中的数字2,表示该文件存在2个硬链接。
正常情况下,一个inode只有一个链接,如下例
输出结果:
-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt
请留意输出的结果中的数字1,表示该文件只存在1个硬链接,默认情况下,文件都是只有一个硬链接的。
5. 查看软链接
再来看一个文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout - /proc/self/fd/1
linux查看软链接
我们发现,/dev/stdout实际上指向另一个文件/proc/self/fd/1,这就是软链接。类似于Windows系统上的快捷方式。
6. 软链接与硬链接的区别
6.1 软链接特点
6.2 硬链接特点
ln链接符原理如下:
Linux ln链接符原理图
7. 创建文件的链接
Linux ln命令是一个非常重要而且常用命令,它用于为文件或者目录创建链接。
7.1 创建软链接
创建一个文件,用于演示软链接。
创建软链接示例:
检查结果:
输出文件属性
lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt - soft.txt
linux创建软链接
可以看出这个文件指向当前目录soft.txt,配置成功。7.2 创建硬链接
创建一个文件,用于演示硬链接。
创建硬链接,没有使用选项
检查结果:
输出文件属性:
-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt
linux创建硬链接
留意以上输出数字2,表明该文件有2个副本。
8. 总结
ln命令可以创建文件的副本,也可以创建软链接。
用命令:ls -l 查看, 最前面有“l”的就是软链接了,其他类型的文件都可以用这个命令看到。
软链接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。
具体用法是: ln -s 源文件 目标文件
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。
例如:
这样我们就对/usr/bin目录下的mysql命令创建了软连接 。
创建软连接
ln -s [源文件或目录] [目标文件或目录]
例如:当前路径创建test引向/var/www/test 文件夹
创建/var/test 引向/var/www/test 文件夹
删除软连接
和删除普通的文件是一样的,删除都是使用 rm 来进行操作
例:
删除test
修改软链接
ln –snf [新的源文件或目录] [目标文件或目录]
这将会修改原有的链接地址为新的地址
例如:
创建一个软链接
修改指向新的路径
常用参数:
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
需要准备的材料分别是:电脑、linux连接工具。
1、首先连接上linux主机,进入等待输入指令的linux命令行状态。
2、输入:file /usr/bin/vi,按回车。
3、此时可以查询出/usr/bin/vi文件存在软链接,为/usr/bin/vim文件。
ls -al 可以查看软链接的指向
硬链接是相当与创建了文件信息的一份拷贝,跟原来的文件是一模一样的,没有任何区别,除了文件名字,只不过两个文件名指向的硬盘中的文件只存在一份。。