Day06-文件类型
导读
- 今日内容
- 1.文件属性
- 2.文件类型
- 3.链接文件
- 软链接
- 软链接使用场景
- 硬链接[了解]
- 硬链接与软链接的区别
- 4.命令的执行流程[扩展了解]
- 今日总结
- 相关命令
今日内容
文件属性
[root@oldboy ~]# ll
total 56760
-rw-------. 1 root root 1619 Jul 29 15:27 anaconda-ks.cfg
-rw-r--r--. 1 root root 938 Jul 29 15:52 passwd
-rw-r--r--. 1 root root 58112885 Jul 29 16:07 web3_access.log
第一列第一个字符表示文件类型
`rw-r--r--` 权限(下周)
`1` 文件被链接次数
`root` 文件的拥有者(用户)
`root` 文件的拥有组(用户组 ==>家族)
`1619` 文件大小
`Jul 29 15:27` 文件的日期,以及创建文件的时间
`anaconda-ks.cfg` 文件的名称
文件类型
file filename
查看文件精准类型
ll
无法请准判断文件类型
[root@oldboy ~]# ll /dev/
total 0
crw-------. 1 root root 10, 183 Jul 29 15:33 hwrng
lrwxrwxrwx. 1 root root 25 Jul 29 15:33 initctl -> /run/systemd/initctl/fifo
drwxr-xr-x. 3 root root 200 Jul 29 15:33 input
crw-r--r--. 1 root root 1, 11 Jul 29 15:33 kmsg
srw-rw-rw-. 1 root root 0 Jul 29 15:33 log
crw-rw----. 1 root disk 10, 237 Jul 29 15:33 loop-control
drwxr-xr-x. 2 root root 100 Jul 29 15:33 mapper
crw-------. 1 root root 10, 227 Jul 29 15:33 mcelog
crw-r-----. 1 root kmem 1, 1 Jul 29 15:33 mem
drwxrwxrwt. 2 root root 40 Jul 29 15:33 mqueue
drwxr-xr-x. 2 root root 60 Jul 29 15:33 net
`-` 文件 (普通文件 图片 压缩包)
`s` socket本地进程与进程间的一种通信方式 (mysql)
`b` 块设备文件 (硬盘 光盘 分区)
`c` 字符设备 用于提供用户的输入与输出
`l` 链接文件 类似于Windows的快捷方式
`d` 目录 类似于Windows的文件夹
链接文件
inode索引(权限 属性 大小,没有文件名) `--->` block真实数据
软链接
#类似于Windows的快捷方式
[root@oldboy ~]# ln -s /root/rainbow.txt /root/rainbow
[root@oldboy ~]# rm -f rainbow
[root@oldboy ~]# rm -f qq && ln -s /root/qq_v1.2/ /root/qq
软链接使用场景
软件升级 软件回退
很少对文件做软链接,一般做目录
[root@oldboy ~]# mkdir qq_v1.1
[root@oldboy ~]# ln -s /root/qq_v1.1/ /root/qq
#升级
[root@oldboy ~]# mkdir qq_v1.2
[root@oldboy ~]# rm -f qq && ln -s /root/qq_v1.2/ /root/qq
#回退
[root@oldboy ~]# rm -f qq && ln -s /root/qq_v1.1/ /root/qq
不方便移动的目录
代码升级 秒级回退
代码升级
硬链接[了解]
相当于创建一个副本,不支持硬链接目录
`ln /root/file_1 /root/file_2`
硬链接与软链接的区别
软链接就是一个快捷方式,删除软链接不会影响源文件。
硬链接类似于一个文件的副本,删除硬链接不影响源文件,只有删除所有的硬链接及其源文件才切底被删除。
命令执行流程[扩展了解]
`绝对路径-->alias-->hash缓存-->$PATH变量路径-->有执行-->没有command not found`
1.判断命令是否通过绝对路径执行
2.判断命令是否存在alias别名
3.判断用户输入的是内置命令还是外置命令
4.Bash内部命令直接执行,外置命令检查是否存在缓存
5.通过`$PATH`路径查找命令路径,有执行,无报错 `command not found`
今日总结
# 文件的属性
怎么看 `ls -l`
都是什么意思 `-->先看会的,再看不会的`
# 文件的类型
`-` #文件(不一定)
`d` #目录
`s` #套接字文件,本地进程与进程之间的通信
`l` #链接文件
`c` #字符设备,接收用户的输入,和系统返回的输出结果
`b` #块设备(硬盘 分区 光盘 … 存储的介质)
# 如何确定文件是什么类型的
file filename #查看文件是什么类型的
Ps:Linux不区分后缀,后缀通常都是用来表示的,为了方便我们自己识别
# 文件链接
inode索引(权限 属性 大小,没有文件名) `--->` block真实数据
软链接 #多个不同的inode指向同一个block
硬链接 #多个相同的inode指向同一个block(不支持目录,不支持不同分区)
相关命令
hash #查看外部命令缓存
-d 删除单条缓存
-r 清空缓存
file #查看文件类型
ln #创建链接文件
-s 创建软链接
echo #输出,所见即所得,和程序中的 print 类似
网友评论