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重要思想:一切皆文件。
文件类型 | 说明 |
---|---|
- | 普通文件 |
d | directory,目录 |
l | link,软连接 |
b | block device,块设备,磁盘、分区、硬盘等 |
c | character 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 4月 30 10:19 awk.txt
134490719 lrwxrwxrwx 1 root root 7 5月 6 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 4月 30 02:19 awk.txt
203074226 -rw-r--r-- 2 0 0 137 4月 30 02:19 awk.txt.hard
134490719 lrwxrwxrwx 1 0 0 7 5月 6 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时间分类 | 说明 |
---|---|
修改时间,mtime | modify,最后一次文件内容被修改的时间 |
访问时间,atime | access,现在是当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 5月 6 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