第五篇: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
复制代码

 

posted @   猿小姜  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示