软链接
相当于windows下的一个快捷方式,可以是文件也可以是文件夹
ln -s /mnt/mtd_app/ts ts
//就会在该目录下生成一个软链接
硬链接
linux下文件的存储是通过索引节点号来存储的,硬链接相当于为文件增加了一个索引节点号
相当于另一个访问文件的路径(感觉有点像指针)
因此只删除其中一个链接并不会删除文件,只有所有的索引节点号都删除后文件才会被真正的删除
注意:硬链接不允许给文件目录建立;只有超级用户才有建立硬链接权限
特点以及不同
- 两种链接的方式都具有同步性,即源文件更改那么相应的链接也会更改(跟windows相同啊)
- 两种方式都占用很少的磁盘空间,具体的方式自己还需要研究ibm的文档
- 软链接情况下,源文件挪位置了,软链接就无法使用了;硬链接文件挪位置了也可以访问到文件(相当于重新生成了一份文件)
原理内容
参考ibm的学习资料
Linux的文件与目录
- Unix是由进程和文件构成的
在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件 - Linux的目录结构
- 设备当做文件
Linux把设备当做文件进行处理
处理方法
输入设备信息所在目录:/proc/bus/input/devices
打开设备的方法(暂时没看)
Linux文件
-
Linux文件系统
实现这些文件系统的基础就是Linux VFS(虚拟文件系统) -
由两个部分组成,
用户数据
和元数据
用户数据 文件真实的数据内容
元数据 文件的属性:大小,所有者,使用权限,索引节点号等等信息 -
抽象了文件系统的四个基本概念
1.文件:实际的数据块
2.目录项:包含文件名和指向的inode
3.索引节点:包含文件信息以及数据块指针
4.挂载点 -
结构
利用文件名找到索引节点号.------->存放在目录项中
利用索引节点号可以查询到文件的信息 和 文件数据块的指针.------->存放在索引节点表中
(具体什么结构,参照保存的资料)
硬链接与软链接实际结构
硬链接是在目录项中添加一个指向inode的文件名
软链接是普通的文件,只是内容存放的是文件名或者文件夹名
所以,才有了许多的不同
1.硬链接即使原本的文件名改变了,硬链接依旧可以访问到具体文件;软链接下,如果文件名改变,软链接就会失效
2.硬链接由于是存放的是文件的文件名,所以不能对目录生成硬链接;软链接存的可以是文件也可以是目录,所以都可以生成链接
相关的命令
文件命令
stat filename
硬链接
ln oldfile newfile
软链接
ln -s oldfile newfile
其他命令
1.查看当前系统挂载的文件系统的类型
df -i --print-type
2.tree命令
tree . -F -L 2
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
相当于包含很多其他选项,也包含-l符号链接指向选项
-L 2 显示的层级
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。