前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第五章·Linux文件管理-文件属性及类型

第五章·Linux文件管理-文件属性及类型

作者头像
DriverZeng
发布2022-09-26 11:47:45
3310
发布2022-09-26 11:47:45
举报
文章被收录于专栏:Linux云计算及前后端开发

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


Linux系统文件属性

代码语言:javascript
复制
-rw-------. 1 root root 4434 May 30 13:58 ks.cfg

-rw-------. ①:文件类型与权限
1           ②:硬链接次数
root        ③:所属用户
root        ④:所属组
4434        ⑤:文件大小
May30 13:58 ⑥⑦⑧:最新修改的时间与日期
ks.cfg      ⑨:文件或目录名称

Linux系统文件类型

通过颜色或者后缀判断文件类型不一定准确.

代码语言:javascript
复制
ls -l 文件名 //看第一个字符
格式             说明
-   普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   目录文件
b   设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c   设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s   套接字文件, 进程间通信(socket)
p   管道文件
l   链接文件

#示例
[root@zls ~]# ll -d /etc/hosts /tmp /bin/ls  /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x.  1 root root 117656 Jun 30  2016 /bin/ls
srw-rw-rw-.  1 root root      0 Jan 20 10:35 /dev/log
brw-rw----.  1 root disk   8, 0 Jan 20 10:36 /dev/sda
crw--w----.  1 root tty    4, 1 Jan 20 10:36 /dev/tty1
lrwxrwxrwx.  1 root root     22 Jan 13 11:31 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--.  1 root root    199 Jan 20 11:03 /etc/hosts
prw-------.  1 root root      0 Jan 20 10:36 /run/dmeventd-client
drwxrwxrwt. 61 root root   8192 Jan 21 13:01 /tmp

2.查看文件类型命令file

代码语言:javascript
复制
[root@zls ~]# file /etc/hosts
/etc/hosts: ASCII text

[root@zls ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped

[root@zls ~]# file /dev/sda
/dev/sda: block special

[root@zls ~]# file /dev/tty1
/dev/tty1: character special

[root@zls ~]# file /etc/grub2.cfg
/etc/grub2.cfg: broken symbolic link to `../boot/grub2/grub.cfg'

[root@zls ~]# file /home
/home: directory

[root@zls ~]# file /run/dmeventd-client
/run/dmeventd-client: fifo (named pipe)

注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别

系统链接文件

文件有文件名和数据,在Linux上被分成两个部分:用户数据(user data)与元数据(metadata)

用户数据:文件数据块(data block),数据块是记录文件真实内容的地方,我们将其称为Block 元数据:文件的附加属性,例如:文件大小,创建时间,属组,属主...等,我们称其为Inode

在Linux中,inode是文件元数据的一部分,但其并不包含文件名,inode号即索引节点号

文件名仅是为了方便人们的记忆和使用,系统或者程序通过inode号寻找正确的文件数据块。

下图为文件读取的流程:

Linux系统引入了两种链接: 1.硬链接(hard link) 2.软链接(又叫:符号链接即soft linksymbolic link


软链接

1.什么是软链接?

软链接相当于windows的快捷方式,软链接文件会将inode指向源文件的block

当我们访问这个软链接文件时,其实就是在访问源文件的本身。 1.那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。 2.那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。 3.如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。

代码语言:javascript
复制
[root@db04 ~]# touch soft_link
[root@db04 ~]# ln -s soft_link /tmp/soft_link
[root@db04 ~]# ls -li soft_link /tmp/soft_link
662184 -rw-r--r-- 1 root root 0 6月   1 10:42 soft_link
915769 lrwxrwxrwx 1 root root 9 6月   1 10:42 /tmp/soft_link -> soft_link

2.软链接的应用场景 1)软件升级 2)代码发布 3)不方便移动的目录 4)数据回滚 5)程序读取


硬链接

1.什么是硬链接

若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名,如下图所示hard link就是file的一个别名,他们有共同的inode

代码语言:javascript
复制
[root@db04 ~]# ls -li /tmp/hard_link
662189 -rw-r--r-- 2 root root 0 6月   1 12:21 /tmp/hard_link
[root@db04 ~]# ls -li hard_link
662189 -rw-r--r-- 2 root root 0 6月   1 12:21 hard_link

总结:硬链接与软链接的区别

代码语言:javascript
复制
1)创建命令不同
    软链接:ln -s
    硬链接:ln
2)目录不能创建硬链接,并且硬链接不可以跨越系统的分区,软链接可以
3)硬链接文件与源文件inode相同,软链接文件与源文件inode不同
4)删除软链接文件,对源文件无影响,但是删除软链接源文件对软链接文件有影响
5)删除硬链接文件,对源文件也无影响,并且删除源文件,对硬链接文件也无影响

面试题:当前磁盘空间还剩余500G,但是就无法往里面写入数据,报错,磁盘空间满了。

1T磁盘,用户数据把inode沾满了

代码语言:javascript
复制
[root@db04 ~]# df -i
Filesystem                   Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg_db01-lv_root 1152816 76391 1076425    7% /
tmpfs                        238319     1  238318    1% /dev/shm
/dev/sda1                    128016    39  127977    1% /boot

#模拟
[root@db04 ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024
[root@db04 ~]# mkfs.ext4 -i 1024 /opt/disk
[root@db04 ~]# mkdir /data1
[root@db04 ~]# mount -t ext4 -o loop /opt/disk /data1
[root@db04 data1]# touch file{1..2000}
touch: 无法创建"file1014": 设备上没有空间
touch: 无法创建"file1015": 设备上没有空间
touch: 无法创建"file1016": 设备上没有空间
touch: 无法创建"file1017": 设备上没有空间
touch: 无法创建"file1018": 设备上没有空间
[root@db04 data1]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root   18G  2.0G   15G  12% /
tmpfs                        931M     0  931M   0% /dev/shm
/dev/sda1                    485M   39M  421M   9% /boot
/opt/disk                    891K   39K  801K   5% /data1

[root@db04 data1]# df -i
Filesystem                   Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg_db01-lv_root 1152816 76393 1076423    7% /
tmpfs                        238319     1  238318    1% /dev/shm
/dev/sda1                    128016    39  127977    1% /boot
/opt/disk                      1024  1024       0  100% /data1

硬连接数计算

代码语言:javascript
复制
[root@db04 ~]# mkdir hard
[root@db04 ~]# ll hard -d
drwxr-xr-x 2 root root 4096 6月   1 12:50 hard
[root@db04 ~]# cd hard
[root@db04 hard]# mkdir test1
[root@db04 ~]# ll -d hard
drwxr-xr-x 3 root root 4096 6月   1 12:50 hard
[root@db04 ~]# cd hard
[root@db04 hard]# touch test
[root@db04 ~]# ll -d hard
drwxr-xr-x 3 root root 4096 6月   1 12:50 hard
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux系统文件属性
  • Linux系统文件类型
  • 系统链接文件
相关产品与服务
运维安全中心(堡垒机)
腾讯云运维安全中心(堡垒机)(Operation and Maintenance Security Center (Bastion Host))可为您的 IT 资产提供代理访问以及智能操作审计服务,为客户构建一套完善的事前预防、事中监控、事后审计安全管理体系,助力企业顺利通过等保测评。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档