Linux文件属性及打包压缩三剑客

1、文件属性体系

1.1 文件系统概述

yaml 复制代码
[root@nanjing /]# ls -lhi
总用量 72K
  3505 lrwxrwxrwx.   1 root root    7 3月   7 2019 bin -> usr/bin
262152 dr-xr-xr-x.   5 root root 4.0K 12月 19 16:00 boot
399635 drwxr-xr-x    2 root root 4.0K 11月  5 2019 data
  1026 drwxr-xr-x   19 root root 3.0K 1月   7 16:14 dev
262147 drwxr-xr-x.  95 root root  12K 1月  24 13:02 etc

指南------》[故障集合]Linux必备故障及原因50个

1.2 inode与block部分

大概了解:inode和block含义即可.未来在磁盘部分有故障使用.

inode索引节点,inode号码类似于身份证号码,通过inode号码 可以找到文件的内容.

1)inode和block关系

inode是一个空间,inode号是空间的位置,类似于身份证,inode空间存放:

  • inode空间中存放的是 文件属性信息 ,文件大小,修改 时间,权限,所有者
  • inode空间中存放block的位置(指向文件实体的指针)
  • 这里不存放文件名.

block块(数据块):存放数据

用户访问查看oldboy.txt文件内容的流程:

1.用户访问oldboy.txt的时候,系统会找出他对应的 inode空间(根据inode号码)。

2.访问来到inode空间后,确认用户,确认权限。

3.权限信息正确就准许通过,可以访问inode对应的 block区域(数据)。

2)inode和block特点

  • inode索引节点,存放文件属性信息,block存放位置。
  • 每创建1个非空文件至少占用1个inode,1个block,一般文件都要有1个inode。
  • 1个block默认是4k.
  • inode,block数量是在格式化的时候创建的。
  • 正常情况下block的使用会更快创建小文件不足4k,1个block还有剩余空间,单无法给其他文件使用
  • 创建文件大于4k,占用多个block。

3)如何查看

查看block使用情况:(平时说的磁盘空间/磁盘空间使用情况)

bash 复制代码
df -h

查看inode使用情况;

bash 复制代码
df -i

重要:文件名是存放在目录的block中的。没有存放在inode中,所以文件名不是文件属性

1.3 文件类型部分

1)Windows与Linux文件类型区别

windows下面通过扩展名的区分不同文件类型,如果扩展名修windows下面通过改则无法使用。 Linux下面扩展名仅仅用于展示,随意修改,虽然Linux不区分扩展名,但是推荐创建文件的时候给他加上.

常用的扩展名 说明
.txt 普通文件
.sh .bash shell文件
.conf .cfg .xml .yaml .yml 配置文件
.py python脚本文件

2)Linux文件类

Linux常见文件类型 含义
- 文件 file
d 目录 directory
l 软连接,类似于Win的快捷方式
c 字符设备 char
b 块设备 block 硬盘
s 套接字 socket
p 管道文件

详细文件类型

txt 普通文本;data 数据文件;二进制文件 大部分都是命令。

bash 复制代码
file
#查看文件的详细类型

1.4 软硬链接​​​​​​​​​​

软链接:类似于windows中快捷方式,也是一种文件;用于存放源文件的路径(位置+名字),应用最多

硬链接:在同一个分区中,不同的文件的inode号码相同了,这些文件互为硬链接,很少使用

ln(link)创建软连接或硬链接,默认创建软链接

软链接格式 ln -s 源文件 软连接文件

csharp 复制代码
#案例一 创建软连接
[root@nanjing ~]# touch 1.txt 
[root@nanjing ~]# ll
总用量 8
-rw-r--r-- 1 root root   0 1月  25 18:39 1.txt
[root@nanjing ~]# ln -s 1.txt 2.txt
[root@nanjing ~]# ll
总用量 12
-rw-r--r-- 1 root root   5 1月  25 18:39 1.txt
lrwxrwxrwx 1 root root   5 1月  25 18:40 2.txt -> 1.txt

温馨提示: 如果源文件被删除或改名或移动走,软连接会如何? 红色闪烁

硬链接格式 ln 源文件 硬链接文件

csharp 复制代码
[root@nanjing ~]# ln 1.txt yinglink
[root@nanjing ~]# ll -i |grep 84
393584 -rw-r--r-- 2 root root  16 1月  25 18:40 1.txt
393584 -rw-r--r-- 2 root root  16 1月  25 18:40 yinglink
  • 啥意思

    • 软连接(符号链接)softlink/symlink,类似于windows快捷方式,存放源文件的位置。
    • 硬链接:同一个分区中inode号码相同的文件,互为硬链接。
  • 咋来的

    • 软连接通过ln -s创建,硬链接通过ln创建
  • 特点

    • 软件连接是比较常用的,可以给文件,目录创建.
    • 硬链接只能给文件创建,不能跨分区,无法给目录创建硬链接,较少使用。
  • 咋没的

    • 删除软连接,源文件不受影响。
    • 删除源文件,软连接无法使用,红底白字闪烁
    • 删除硬链接,源文件,软连接无影响.
    • 删除源文件和硬链接,这个文件就被删除了

1.5 文件大小

1.查看文件大小

ll -h 

2.查看目录大小

bash 复制代码
du -sh /etc/
-h 人类可读取形式
-s 不要显示目录所有子目录,只显示汇总信息。

类似于windows中文件夹属性

1.6文件时间​​

bash 复制代码
stat #查看文件的属性信息+文件名
Linux文件时间 说明
mtime modify 修改时间,最常用 (修改内容)
atime access 访问时间
ctime change 文件属性的变化时间 (修改权限)

2、案例实战-一个基于软连接服务升级流程​​​​​​

未来可以设计基于软连接的升级与回滚流程

  • 升级:删除旧的软连接,创建软连接指向新的版本即可
  • 回滚:删除旧的软连接,创建软连接指向旧的可用的版本即可

3、打包压缩三剑客

运维的日常工作中,我们需要备份文件,备份某一个目录中的文件,这时候使用cp等命令不行了。 占用空间巨大,避免空间浪费,选择打包压缩目录实现备份的目的。 未来:备份单个文件就是cp即可,备份多个文件或目录推荐使用打包压缩。

3.1 概述

压缩命令 应用场景
tar 大部分场景使用tar即可,创建、查看、解压、解压到指定目录 核心使用
gzip 一般配合其他命令使用
zip 一般用于解压zip格式的压缩包unzip 目前会使用unzip

3.2 tar

tar命令 选项说明
创建压缩包 zcf tar zcf 压缩包 被压缩的文件/目录
解压 xf tar xf /tmp/etc.tar.gz
解压到指定目录 -C tar xf /tmp/etc.tar.gz -C /mnt/
查看 tf tar tf /tmp/etc.tar.gz
v 显示过程(一般不加)
c 打包
z 压缩
f 指定压缩包

1)其他格式

zcf

  • z使用gzip进行压缩,压缩包以.tar.gz结尾
  • j 使用bzip2进行压缩,压缩包以.tar.bz2结尾
  • J使用xz进行压缩,压缩包以.tar.xz结尾(压缩尺度最大)

tf 无论什么格式,.tar.gz .tar.bz2 .tar.xz

xf 无论什么格式,.tar.gz .tar.bz2 .tar.Xz.

2)忽略的警告

tar警告⚠️:从成员名中删除开头的""/"

sql 复制代码
tar: Removing leading "/" from member names

结论:是个警告而已,可以忽略

由来:

  • 这个是tar命令的安全保护机制
  • 提示出现的原因,我们打包的目标目录或文件是绝对路径。
  • 把我们使用的绝对路径转换为相对路径
  • 为了防止压缩包中保留绝对路径,解压的时候可能发生覆盖,导致数据,配置丢失

3.3 gzip

创建gz压缩包

gzip shishuwu.txt
ll shishuwu.txt.gz

解压

gzip -d shishuwu.txt.gz

3.4 zip/unzip

专门处理.zip格式的压缩包,.tar无法处理

.zip格式是windows和linux共同支持格式

如果没有请安装yum install -y unzip

python 复制代码
压缩
zip -r shishuwu.zip /root/shishuwu
-r 用于压缩目录
​
解压
unzip shishuwu.zip

4、每日回顾

核心:熟练掌握ll -hi每一列含义

核心:熟练掌握什么是inode和block

核心:熟练掌握常见的文件类型

核心:熟练掌握软硬链接区别

熟练:掌握什么是mtime

理解:一个基于软连接服务升级流程

核心:打包压缩: tar创建、查看、解压、解压到指定目录,unzip解压命令

命令:df、file、ln、stat、gzip、zip、unzip、du、tar

相关推荐
程序员南飞1 小时前
ps aux | grep smart_webrtc这条指令代表什么意思
java·linux·ubuntu·webrtc
StrokeAce1 小时前
linux桌面软件(wps)内嵌到主窗口后的关闭问题
linux·c++·qt·wps·窗口内嵌
热爱嵌入式的小许5 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风9 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学9 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO9 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu710 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我10 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、10 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程10 小时前
Linux中环境变量
linux