
linux下查看软连接的信息使用命令“ls -L”最后一列就是原始地址(实际指向的文件的位置)。ln -s /home/basic/dl/ build/执行完成后,会在build路径下dl的目录, 使用ls -l查看会发现build下的dl-〉/home/basic/dl,进入build/dl下即可查看与访问相应的文件。
在Linux命令行界面输入命令:ls -al;
带有“->”符号的则为软连接,initrd.img为软连接的文件名,而->后面跟着的boot/initrd.img-3.13.0-32-geberic则为软连接文件的真实路径。
参考资料
LINUX ln命令硬连接软连接详细解释.360doc个人图书馆[引用时间2017-12-29]
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命令可以创建文件的副本,也可以创建软链接。
Linux中的软链接类似于windows中的快捷方式。 创建方式: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 是指链接文件的意思。 4、对软链接文件进行 vim *** 作。输入This is ln -s test. :wq保存并退出。 5、通过cat test 和 cat test.txt 查看内容。得出的结果都是一样的。既软链接 test 和 test.txt 已经建立关联,对 test *** 作等于对 test.txt *** 作。tips:软链接特点。 1、可以对不存在的文件创建软链接。 tmp 目录下除了 test 和 test.txt 并没有其他文件。 此时 ln -s abc.txt t1,为不存在的 abc.txt 文件创建一个 t1 的软链接。t1 软链接是可以创建 的,只是由于没有真实存在的 abc.txt 文件。通过 ll 查看详情,系统会在 abc.txt 处用红色闪 烁高光发出提示,意指abc.txt文件不存在。 此时,tmp 目录下新建一个 abc.txt 文件,t1 软链接到 abc.txt 文件就会正常。不会再有红色 提示。 2、可以对文件 或者 目录创建软链接,目录创建软链接和文件创建软链接流程一样。 3、删除软链接,不会影响它的指向文件。 vim t1:编辑 t1 软链接,输入1 t1 的内容保存退出。 删除 t1 软链接,tmp 目录下已没有软链接指向 abc.txt 文件。 此时,cat abc.txt 文件可以查看内容,也可以 vim abc.txt 增加 2 abc.txt 内容。证实了,删 除软链接,不会影响它的指向文件。 4、删除了指向文件,该软链接将变为无效连接。 当 t1 软链接指向实际文件 abc.txt 的时候,t1是可以对 abc.txt 进行增删改查 *** 作的。若 rm - rf abc.txt 删除了实质性的 abc.txt 文件后,t1 将不能做任何 *** 作。失去了实质性文件而存在 的软链接等同于创建一个空的软链接效果一样。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)