第五篇:Linux文件属性及打包压缩三剑客
文件属性
文件属性体系概述
inode与block
了解inode与block含义即可(未来在磁盘部分有故障使用)
概述⭐
- inode是一个空间,inode号是空间的位置,类似于身份证,inode空间存放
- inode空间中存放的是文件属性信息,文件大小、文件的修改时间、文件的权限、文件的所有者
- inode空间中存放的是block的位置(指向文件实体的指针),不存放block块
- inode空间中不存放文件名
- block块(数据块):存放数据
inode与block的关系
用户访问查看oldboy.txt文件内容的过程:
- 用户访问oldboy.txt文件的时候,系统会根据inode号找出对应的inode空间
- 访问来到inode空间后,确认用户,确认权限
- 用户权限信息正确就准许通过,可以访问inode对应的block区域(数据)
inode和block特点
- inode索引节点,存放文件的属性信息,block的位置,不存放文件名
- 每创建一个非空文件至少占用1个inode,1个block,一般文件都要有1个inode
- 1个block块默认是4k
- inode、block数量和大小是在格式化的时候创建的
- 正常情况下block的使用会更快
- 创建不足4k的小文件,1个block还有剩余空间,无法给其他文件使用
- 创建文件大于4k,占用多个block
查看inode与block使用情况⭐⭐⭐⭐⭐
查看block的使用情况的命令(平时说的磁盘空间):df -h 磁盘空间使用情况
查看inode的使用情况的命令:df -i
文件类型
windows与Linux文件类型区别(熟悉即可)
- windows中通过扩展名来区分不同文件类型,如果修改文件扩展名则无法使用
- Linux中的文件扩展名仅仅用于展示,随意修改
常用扩展名 | 说明 |
.txt | 普通文件 |
.sh .bash | shell脚本 |
.conf .cfg .xml .yaml .yml | 配置文件 |
.py | python脚本文件 |
Linux文件类型⭐⭐⭐⭐
Linux常见文件类型 | 含义 |
- | 文件 file,范围较广 |
d | 目录 directory |
l | 软连接 link,类似于window的快捷方式 |
c | 字符设备 char 特殊文件 |
b | 块设备 block |
s | 套接字 socke文件 |
p | 管道文件 pipeline |
file命令查看文件的详细类型
文件的分类 | 说明 |
text | 普通文件(文本文件) 我们日常可以书写、查看、直接修改的脚本 |
data | 数据文件 需要使用专门的命令查看(比如压缩包) |
二进制文件 | 大部分都是命令 |
软硬连接⭐⭐⭐⭐⭐
概述
软链接:类似于windows中快捷方式,也是一种文件;用于存放源文件的路径(位置+名字),应用广泛
硬链接:在同一个分区中,不同文件的inode号码相同,这些文件互为硬链接,应用很少
创建软硬链
软链接:
[root@yuan ~]# # 准备新的环境/yuan/jiang/a.txt [root@yuan ~]# mkdir -p /yuan/jiang/ [root@yuan ~]# cd /yuan/jiang [root@yuan jiang]# touch a.txt [root@yuan jiang]# # 创建相对路径的软链接 [root@yuan jiang]# ln -s a.txt a.txt_soft [root@yuan jiang]# ll 总用量 0 -rw-r--r--. 1 root root 0 9月 8 11:42 a.txt lrwxrwxrwx. 1 root root 5 9月 8 11:43 a.txt_soft -> a.txt # 可以发现软链接指向源文件 [root@yuan jiang]# # 从源文件中写入内容 [root@yuan jiang]# echo yuanxiaojiang >>a.txt [root@yuan jiang]# cat a.txt yuanxiaojiang [root@yuan jiang]# # 从软链接中写入内容 [root@yuan jiang]# echo yuanxiaojiang_soft >>a.txt_soft [root@yuan jiang]# cat a.txt yuanxiaojiang yuanxiaojiang_soft [root@yuan jiang]# cat a.txt_soft yuanxiaojiang yuanxiaojiang_soft [root@yuan jiang]# # 创建绝对路径软链接 [root@yuan jiang]# ln -s /yuan/jiang/a.txt oldboy.txt_soft_jue [root@yuan jiang]# ll 总用量 4 -rw-r--r--. 1 root root 33 9月 8 11:45 a.txt lrwxrwxrwx. 1 root root 5 9月 8 11:43 a.txt_soft -> a.txt lrwxrwxrwx. 1 root root 17 9月 8 11:48 a.txt_soft_jue -> /yuan/jiang/a.txt
- 源文件被移走
- 源文件被删除和改名
硬链接:
硬链接:inode号码相同的文件,它指向同一个inode区域和block区域
[root@yuan jiang]# ln a.txt a.txt_hard [root@yuan jiang]# ll 总用量 8 -rw-r--r--. 2 root root 33 9月 8 15:08 a.txt -rw-r--r--. 2 root root 33 9月 8 15:08 a.txt_hard lrwxrwxrwx. 1 root root 5 9月 8 12:02 a.txt_soft -> a.txt lrwxrwxrwx. 1 root root 17 9月 8 12:02 a.txt_soft_jue -> /yuan/jiang/a.txt [root@yuan jiang]# echo yuanxiaojiang >a.txt [root@yuan jiang]# echo yuanxiaojiang_hard >>a.txt_hard [root@yuan jiang]# cat a.txt yuanxiaojiang yuanxiaojiang_hard [root@yuan jiang]# cat a.txt_hard yuanxiaojiang yuanxiaojiang_hard
软硬链接的区别
软硬链接的总结
- 软链接/硬链接的定义:
- 软链接(符号链接):softlink/symlink,类似于windows的快捷方式,存放源文件的位置
- 硬链接:同一个分区中inode号码相同的源文件
软链接/硬链接的创建:
- 软链接通过 ln -s 命令创建
- 硬链接通过 in 命令创建
- 软链接硬链接的特点:
- 软链接可以个文件目录创建
- 硬链接只能给文件创建,不能跨分区,无法给目录创建
- 删除对软链接和硬链接的影响
- 删除软链接,源文件不受影响
- 删除源文件,软链接无法使用(红底白字闪烁)
- 删除硬链接,源文件、软链接皆无影响
- 删除源文件和硬链接,其文件就被删除
文件大小⭐⭐⭐⭐⭐
查看文件大小
ll -h /etc/
查看目录大小
du -sh /etc/ -h 人类可读形式显示 -s 不要显示文件中所有的子目录,只显示汇总信息 查看指定目录所占的空间(block)
时间
stat 对应的文件( stat /etc/hostname ):查看文件的时间
Linux文件时间 | 说明 |
mtime | modify 修改时间(常用) |
atime | access 访问时间 |
ctime | change 文件属性的变化时间 |
企业案例:一个基于软链接服务升级流程
- 未来可能设计基于软链接的升级与回滚流程
- 升级:删除旧的软链接,创建软链接指向新的版本即可
- 回滚:删除旧的软链接,创建软链接指向旧的可用的版本即可
打包压缩三剑客
运维的日常工作中,为了避免空间的浪费,选择打包压缩来实现备份的目的
概述
压缩命令 | 应用场景 |
tar | 创建、查看、解压、解压到指定目录 |
gzip | 一般配合其他命令使用 |
zip、unzip | 一般用于解压zip格式的压缩包unzip |
tar⭐⭐⭐⭐⭐
- windows 压缩
- Linux 打包压缩
- 打包(将文件放在一起) tar
- 压缩(进行压缩,节约空间)tar命令的选项
- tar 命令要熟练掌握的功能
- 创建压缩包
- 查看压缩包
- 解压压缩包
- 解压压缩包到指定目录
tar命令 | 选项与说明 |
创建 zcf | tar zcf 压缩包 被压缩的文件/目录 |
查看 tf | tar tf /tmp/etc.tar.gz |
解压 xf | tar xf /tmp/etc.tar.gz |
创建压缩包
需要指定压缩包存放位置和名字还有被压缩的文件或目录
# 案例:请把/etc/目录压缩,压缩包放在/tmp/etc.tar.gz tar zcvf /tmp/etc.tar.gz /etc/ tar zcf /tmp/etc.tar.gz /etc/ v verbose 显示过程 c create 创建包(打包),如果只放 cf 选项就是打包,不压缩 z gzip tar命令创建包后,通过gzip压缩工具进行压缩 所以:tar打包 gz压缩 扩展名.tar.gz f file 指定压缩包,f放在几个选项最后
查看压缩包
需要指定压缩包名字和位置
tar ztvf /tmp/etc.tar.gz tar tf /tmp/tar.gz t list 列表,查看压缩包内容
解压压缩包
需要指定好压缩包名字和位置(默认是当前位置)
tar zxvf /tmp/etc.tar.gz tar xf /tmp/etc.tar.gz x extract 解压
解压到指定目录
解压etc.tar.gz 到/mnt目录下 -C解压到指定目录 tar xf 压缩包 -C 解压后的存放目录 tar xf /tmp/etc.tar.gz -C /mnt/
tar: 从成员名中删除开头的“/”(warming:可以忽略)
tar: Removing leading `/' from member names
- 由来
-
- 这个是tar命令的安全保护机制.
- 提示出现的原因,我们打包的目标目录或文件是绝对路径
- 把我们使用的绝对路径转换为相对路径.
- 为了防止压缩包中保留绝对路径,解压的时候可能发生覆盖,导致数据,配置丢失.
- 如何避免提示:使用相对路径打包
cd / tar zcf /tmp/etc.tar.gz etc/ 这里使用相对路径打包,提示警告消失了
gzip
gzip 会将指定的文件压缩,并生成一个.gz 后缀的压缩文件,同时删除原始文件
# 创建gz压缩包 [root@yuan ~]# touch yuan.txt [root@yuan ~]# gzip yuan.txt [root@yuan ~]# ll 总用量 16 -rw-------. 1 root root 1341 8月 26 20:24 anaconda-ks.cfg -rw-r--r--. 1 root root 29 9月 8 17:42 yuan.txt.gz # 此时的yuan.txt文件没有了 # 解压 [root@yuan ~]# gzip -d yuan.txt.gz [root@yuan ~]# ll 总用量 12 -rw-------. 1 root root 1341 8月 26 20:24 anaconda-ks.cfg -rw-r--r--. 1 root root 0 9月 8 17:42 yuan.txt # 此时的yuan.txt.gz文件没有了
zip/unzip
- 专门处理.zip格式的压缩包.tar无法处理.zip格式的压缩包
- .zip格式是windows和linux共同支持格式
- 主要掌握,上传zip格式压缩包,在Linux里面可以解压即可
# 压缩 [root@yuan ~]# zip -r etc.zip /etc/ # -r用于压缩目录 # 解压 [root@yuan ~]# unzip etc.zip [root@yuan ~]# ll 总用量 12628 -rw-------. 1 root root 1341 8月 26 20:24 anaconda-ks.cfg drwxr-xr-x. 88 root root 8192 9月 8 15:00 etc -rw-r--r--. 1 root root 12910604 9月 8 17:52 etc.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码