当前位置: 首页 > news >正文

day008-文件属性专题

文章目录

  • 1. 文件属性
    • 1.1 inode、block
    • 1.2 磁盘空间不足的排查流程
  • 2. 文件类型
    • 2.1 file命令
    • 2.2 创建指定大小的文件
  • 3. 软链接与硬链接
    • 3.1 软链接
    • 3.2 硬链接
    • 3.3 软链接与硬链接的区别
  • 4. 日期和时间
    • 4.1 查看系统时间
    • 4.2 自动同步时间
    • 4.3 查看与修改时区
  • 5. 打包压缩
  • 6. 踩坑记录
    • 6.1 删除软链接目录失败
    • 6.2 系统出现故障
  • 7. 思维导图

1. 文件属性

  • 文件属性是指描述文件特征和性质的元数据信息,用定义文件的类型、权限、时间戳等特性,便于系统管理和用户操作。

    在这里插入图片描述

  • 文件的底层结构:

    在这里插入图片描述

1.1 inode、block

  • inode是索引节点,存放文件多的属性信息和block的位置信息
  • 每创建一个文件就要占用一个inode
  • 磁盘分区后inode的数量是固定的
  • block指数据块,一般为4KB,大小可以改变
  • 磁盘空间不足一般情况下是block快不足

  • 监控磁盘分区的inode或block占用空间的命令是 df
    # 查看inode情况
    [root@oldboy99-Kylin ~]# df -i
    文件系统                  Inodes 已用(I)  可用(I) 已用(I)% 挂载点
    devtmpfs                  115792     475   115317       1% /dev
    tmpfs                     121353       1   121352       1% /dev/shm
    tmpfs                     121353     721   120632       1% /run
    tmpfs                     121353      18   121335       1% /sys/fs/cgroup
    /dev/mapper/klas-root   34134016  130628 34003388       1% /
    tmpfs                     121353      14   121339       1% /tmp
    /dev/mapper/klas-backup 16664576      12 16664564       1% /backup
    /dev/sda1                 524288     345   523943       1% /boot
    tmpfs                     121353       6   121347       1% /run/user/0
    # 查看block情况
    [root@oldboy99-Kylin ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 453M     0  453M    0% /dev
    tmpfs                    475M     0  475M    0% /dev/shm
    tmpfs                    475M   13M  462M    3% /run
    tmpfs                    475M     0  475M    0% /sys/fs/cgroup
    /dev/mapper/klas-root     66G  8.8G   57G   14% /
    tmpfs                    475M     0  475M    0% /tmp
    /dev/mapper/klas-backup   32G  260M   32G    1% /backup
    /dev/sda1               1014M  202M  813M   20% /boot
    tmpfs                     95M     0   95M    0% /run/user/0
    

1.2 磁盘空间不足的排查流程

磁盘空间不足一般是block数量不足。

# 1.查看哪个磁盘分区容量不足
[root@oldboy99-Kylin ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 453M     0  453M    0% /dev
tmpfs                    475M     0  475M    0% /dev/shm
tmpfs                    475M   13M  462M    3% /run
tmpfs                    475M     0  475M    0% /sys/fs/cgroup
/dev/mapper/klas-root     66G  8.8G   57G   14% /
tmpfs                    475M     0  475M    0% /tmp
/dev/mapper/klas-backup   32G  260M   32G    1% /backup
/dev/sda1               1014M  202M  813M   20% /boot
tmpfs                     95M     0   95M    0% /run/user/0
# 2.查看磁盘分区挂载目录下各个目录的大小
[root@oldboy99-Kylin ~]# du -sh /* |sort -k1hr
du: 无法访问 '/proc/4309/task/4309/fd/4': 没有那个文件或目录
du: 无法访问 '/proc/4309/task/4309/fdinfo/4': 没有那个文件或目录
du: 无法访问 '/proc/4309/fd/3': 没有那个文件或目录
du: 无法访问 '/proc/4309/fdinfo/3': 没有那个文件或目录
4.4G	/root
3.5G	/usr
357M	/var
172M	/boot
25M	/etc
14M	/opt
13M	/run
28K	/home
20K	/backup
12K	/oldboy-83-lnb
4.0K	/data
0	/bin
0	/dev
0	/lib
0	/lib64
0	/media
0	/mnt
0	/oldboy
0	/proc
0	/sbin
0	/srv
0	/sys
0	/tmp
# 3.逐级查看占用空间大的目录或文件
[root@oldboy99-Kylin ~]# du -sh /root/* |sort -k1hr
4.3G	/root/Kylin-Server-V10-SP3-General-Release-2303-X86_64.iso
111M	/root/oldboy
4.0K	/root/anaconda-ks.cfg
4.0K	/root/hosts
4.0K	/root/initial-setup-ks.cfg
4.0K	/root/sort.txt
4.0K	/root/sort.txt2
4.0K	/root/uniq.txt
0	/root/ifcfg-ens33

2. 文件类型

Linux重要思想:一切皆文件。

文件类型说明
-普通文件
ddirectory,目录
llink,软连接
bblock device,块设备,磁盘、分区、硬盘等
ccharacter device,字符设备,不断的输出或吸收字符的设备(类似于黑洞、白洞),比如/dev/null(黑洞)、/dev/zero(吐零机)、鼠标、键盘等

2.1 file命令

file命令通过分析文件内容(而非扩展名)来判断文件类型。

[root@oldboy99-Kylin ~/oldboy]# file /etc/hostname ./02-【awk练习文件】access-服务的访问日志-v3.zip /bin/ls
/etc/hostname:                                    ASCII text
./02-【awk练习文件】access-服务的访问日志-v3.zip: Zip archive data, at least v2.0 to extract
/bin/ls:                                          ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=610422befcf43b3494272c001f6fe73eff56a0c0, for GNU/Linux 3.2.0, stripped

2.2 创建指定大小的文件

  • dd命令:可以创建指定大小的文件;以此可以测试硬盘速度
  • if:input file,输入源文件路径
  • of:output file,输出文件路径
  • bs:block size,块大小
  • count:输出的次数;bs*count=文件大小
# 生成2G大小的文件
[root@oldboy99-Kylin ~/oldboy]# dd if=/dev/zero of=./oldboy.txt bs=1M count=2048
记录了2048+0 的读入
记录了2048+0 的写出
2147483648字节(2.1 GB,2.0 GiB)已复制,23.0249 s,93.3 MB/s

3. 软链接与硬链接

3.1 软链接

软链接(softlink),也叫字符链接(symlink),类似于Windows中的快捷方式,存储(指向)目标文件的路径和名称。

  • ln:创建硬链接
  • -s:symbol link,创建软链接
[root@oldboy99-Kylin ~/oldboy]# ln -s awk.txt awk.txt.soft 
[root@oldboy99-Kylin ~/oldboy]# ll -i
总用量 107316
203074226 -rw-r--r-- 1 root root      137  430 10:19 awk.txt
134490719 lrwxrwxrwx 1 root root        7  56 19:25 awk.txt.soft -> awk.txt
  • 软链接可以在常用目录下为较复杂路径的文件创建链接,便于访问。如为网卡文件创建软链接。

  • 软链接可以为软件目录创建链接,便于升级维护。

    在这里插入图片描述

3.2 硬链接

在同一个分区中,inode号码相同的文件互为硬链接。

[root@oldboy99-Kylin ~/oldboy]# ln awk.txt awk.txt.hard
[root@oldboy99-Kylin ~/oldboy]# ll -i
总用量 107320
203074226 -rw-r--r-- 2 0 0      137  430 02:19 awk.txt
203074226 -rw-r--r-- 2 0 0      137  430 02:19 awk.txt.hard
134490719 lrwxrwxrwx 1 0 0        7  56 11:25 awk.txt.soft -> awk.txt
  • 硬链接使用较少

3.3 软链接与硬链接的区别

在这里插入图片描述

特性软链接(Symbolic Link)硬链接(Hard Link)
本质存储目标文件的路径(类似Windows的快捷方式)共享同一inode的文件名称
创建命令ln -s 源文件 软链接名ln 源文件 硬链接名
链接目标类型文件或目录仅文件,不支持链接目录
删除源文件的影响软链接失效无影响
删除链接的影响无影响,仅删除链接本身减少inode的链接计数,计数为0时释放block数据
inode是否相同不同,软链接有自己的inode相同,共用同一个inode
磁盘占用空间少量,仅占存储路径基本不占用,共享源数据块
典型用途快捷方式、跨文件系统链接、目录链接文件备份、数据持久化

4. 日期和时间

Linux时间分类说明
修改时间,mtimemodify,最后一次文件内容被修改的时间
访问时间,atimeaccess,现在是当mtime变化后,atime才做修改
属性变化时间,ctime文件属性变化的时间
创建时间,btime在较新的内核系统中才有

4.1 查看系统时间

[root@oldboy99-Kylin ~/oldboy]# date
2025年 05月 06日 星期二 20:24:29 CST
# 查看年月日
[root@oldboy99-Kylin ~/oldboy]# date +%F
2025-05-06
# 查看时分秒
[root@oldboy99-Kylin ~/oldboy]# date +%T
20:24:50
# 查看是周几
[root@oldboy99-Kylin ~/oldboy]# date +%w
2
[root@oldboy99-Kylin ~/oldboy]# date +%Y-%m-%d_%H:%M:%S
2025-05-06_20:26:18

4.2 自动同步时间

NTP(Network Time Protocol,网络时间协议),是用于在计算机网络中同步设备时间的核心协议。

[root@oldboy99-Ubuntu ~/oldboy]# apt install -y ntpdate
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ntpdate is already the newest version (1:4.2.8p15+dfsg-1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
# 与阿里云时钟服务器同步时间
[root@oldboy99-Ubuntu ~/oldboy]# ntpdate ntp.aliyun.com6 May 20:31:08 ntpdate[2581]: adjust time server 203.107.6.88 offset +0.023091 sec

4.3 查看与修改时区

[root@oldboy99-Ubuntu ~/oldboy]# timedatectl Local time: Tue 2025-05-06 20:32:56 CSTUniversal time: Tue 2025-05-06 12:32:56 UTCRTC time: Tue 2025-05-06 12:32:57Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yesNTP service: activeRTC in local TZ: no
# 摁tab键即可补全时区
[root@oldboy99-Ubuntu ~/oldboy]# timedatectl set-timezone Asia/Shanghai 

5. 打包压缩

  • 打包是将多个文件放在一起
  • 压缩是用算法减少文件占用的空间
  • tar 目标文件名 原目录
  • -z:使用gzip工具压缩文件
  • -c:将文件打包
  • -v:显示打包压缩过程
  • -f:指定压缩包名
  • -t:list,显示压缩包文件
  • -x:extract,解压
  • -C:后接解压目录
# 将/etc目录打包并压缩
tar zcvf /backup/etc.tar.gz /etc/
# 查看压缩包内容
tar tf /backup/etc.tar.gz 
# 将压缩包解压到目标目录下
tar xf etc.tar.gz -C /opt/
  • zip格式的压缩包一般用于Windows和Linux系统互传文件;zip/unzip
  • -q:quiet,不显示压缩过程
  • -r:压缩目录
[root@oldboy99-Ubuntu /backup]# zip ./etc.zip /etc/ -qr
[root@oldboy99-Ubuntu /backup]# ll
total 19048
drwxr-xr-x  3 root root     4096 May  6 20:55 ./
drwxr-xr-x 21 root root     4096 May  6 20:42 ../
drwxr-xr-x 98 root root     4096 May  6 07:30 etc/
-rw-r--r--  1 root root   580899 May  6 20:43 etc.tar.gz
-rw-r--r--  1 root root 18909723 May  6 20:55 etc.zip

6. 踩坑记录

6.1 删除软链接目录失败

[root@oldboy99-Kylin ~/oldboy]# ll
总用量 107316
lrwxrwxrwx 1 0 0        5  56 11:34 etc -> /etc/
[root@oldboy99-Kylin ~/oldboy]# rm ./etc/
rm: 无法删除 './etc/': 是一个目录
[root@oldboy99-Kylin ~/oldboy]# rm ./etc/ -r
rm:是否删除目录 './etc/'?y
rm: 无法删除 './etc/': 不是目录

原因:

  • rm ./etc/:系统尝试删除 /etc/ 目录(因末尾的 / 会解析为目录路径),但 /etc/ 是系统关键目录,默认无权限删除
  • rm ./etc/ -r:同样因 / 导致系统误判为删除实际目录,而软链接本身不是目录,故报错“不是目录”

解决方法:

[root@oldboy99-Kylin ~/oldboy]# unlink ./etc
  • 注意后面不要跟斜线

6.2 系统出现故障

在这里插入图片描述

原因:

应该是在删除目录软链接时错误操作,把/etc也删除了。

解决方法:

转到之前的快照。

7. 思维导图

【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX

相关文章:

  • 前端知识-hook
  • 深度学习系统学习系列【6】之深度学习技巧
  • css3伸缩盒模型第二章(侧轴相关)
  • go 编译报错:build constraints exclude all Go files
  • DolphinScheduler-3.2.0集群部署教程
  • Android OKHttp原理简单说明
  • android-ndk开发(7): 从库文件反推ndk版本
  • 简单介绍分布式定时任务XXL-JOB
  • MySQL + Qwen3-0.5B + Flask + Dify 工作流部署指南
  • 为什么800*800mm防静电地板“应用较少
  • Flink + Kafka 构建实时指标体系的实战方法论
  • AI与机器学习、深度学习在气候变化预测中的应用与实践
  • Nginx安全防护
  • 【大模型】Mamba模型架构
  • k倍区间--线段树60/map+思维100
  • 【ARM】DS-试用授权离线激活
  • Spring Boot3 实现定时任务 每10分钟执行一次,同时要解决分布式的问题 区分不同场景
  • OS7.【Linux】基本指令入门(6)
  • 启发式算法-模拟退火算法
  • 【LLM】Open WebUI 使用指南:详细图文教程
  • 公元1057年:千年龙虎榜到底有多厉害?
  • 姜再冬大使会见巴基斯坦副总理兼外长达尔
  • 巴基斯坦军方:印度导弹袭击已造成至少3死14伤
  • 于东来再次回应玉石质疑:邀请前往胖东来深入考察,随时欢迎各方调查
  • 德国联邦议院6日下午将举行总理选举第二轮投票
  • 观察|“离境退税”撬动上海“五一”假期入境消费