文件的属性及类型
Posted 酱油拌饭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的属性及类型相关的知识,希望对你有一定的参考价值。
文件的属性及类型
文件属性
root@localhost ~]# ll
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
文件的类型
#以首字母判断文件的类型,- 是普通文件,d是目录,l是软连接文件,类似window上的快捷方式
-:普通文件
d:directory 目录
l:link 软链接文件(windows快捷方式)
c:设备文件(char字符设备文件)和字符相关的设备,举例:打印机,终端
b:设备文件(block块设备文件)和存储相关的设备,举例:硬盘,U盘,磁盘分区
s:socket安全套接字文件,网络编程
p:pipe管道文件,父进程与子进程之间的通信文件
#文件权限的判断,r是读,有读取的权限,w是写,有修改和编辑的权限,x是执行权限,有就可以执行命令或者脚本
#Permission denied(权限被拒绝的提示)
rw- r-- r--
rwx rwx rwx
r:read 读
w:write 写
x:exec 执行
-:该权限位上没有权限
#单引号部分为硬链接数
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
#单引号部分为属主,也可以理解为文件拥有者
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
#单引号部分为属组,每个组里是可以加入其他用户的
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
#单引号部分为文件大小,可以加-h来查看,不需要计算。
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
#单引号部分为创建文件的时间
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
#最后一个就是文件的名字
- rw-r--r-- 1 root root 56479 Mar 25 10:11 blog.driverzeng.com_access.log
d rwxr-xr-x 2 root root 6 Mar 29 08:39 zls
文件类型查看命令
命令:file
#语法
命令 选项 文件
#用于查看文件具体是什么类型,因为Linux里一切皆文件,没有后缀区分,如果不加后缀根本不知道该文件到底是可编辑,还是不可编辑,现在虽然有颜色区分,但不能完全保证正确。而file能帮我们区分
## 曾导的举例
[root@localhost ~]# file blog.driverzeng.com_access.log
blog.driverzeng.com_access.log: ASCII text, with very long lines
[root@localhost ~]# file pikachu
pikachu: JPEG image data, JFIF standard 1.01
#这两个分别是文本文件和图片,图片并没有后缀,如果不用file查看是不知道的,除非你记得所有的文件
系统的链接文件
Linux中的文件会被分为两个部分
- 第一个:真实数据
- 真实数据是文件中存在的内容
- 第二个:元数据
- 元数据是用来形容一个文件的数据
Linux中文件的储存也会分为两部分
- 第一个:inode
- inode是用来储存文件的元数据,可是说是描述文件的数据,形容文件的数据
- 可以理解为装档案用的档案袋,因为我们装档案外面这个档案袋是要写这个档案里面装的是什么(注:这只是形容)
- 第二个:block
- block是用来储存文件的真实数据,一个block是4k的储量,且每个空间有剩余也不会再利用,而剩余的空间会变成无用的空间碎片,占用剩余内存
## 查看磁盘空间
df
## 选项
-h:human人类可读
-i:查看inode空间
## 举例
# 查看磁盘的block
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 39M 449M 8% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
# 查看磁盘的inode
[root@localhost ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9.3M 35K 9.3M 1% /
devtmpfs 119K 377 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 750 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 250K 326 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
链接文件的种类
- 链接文件的两种类型
- 软连接和硬链接,两者都是类似window上的快捷键,但又不一样
- 软连接,软连接的优点和缺点
- 软连接的优点在于可以对普通文件和目录进行链接,还有可以跨分区链接
- 软链接的缺点在于会受源文件的影响,inode号不同,但这个inode号其实影响不大
- 硬链接的优点和缺点
- 硬链接的优点在于可以连同inode号一起链接,而且不受源文件的影响。
- 硬链接的缺点在于无法跨分区链接文件,且只能链接普通文件不能连接目录
表格
区别 | 硬链接 | 软链接 |
---|---|---|
创建命令 | ln | ln -s |
对象 | 只能对普通文件创建 | 普通文件和目录 |
是否受源文件影响 | 否 | 是 |
inode号 | 相同 | 不同 |
跨分区创建 | 不可以 | 可以 |
企业面试题
当前磁盘空间还剩余500G,但是就无法往里面写入数据,报错,磁盘空间满了
# 1.首先磁盘存储被划分为两块
inode:存储文件的元数据
block:存储文件的真实数据
# 2.在问题当中剩余500G,这500G指的是block
# 3.应该是inode被占满了
# 4.这种情况,一般是系统中,小文件太多导致的
# 5.找到系统中的小文件(没用的),并删除
##### 使用find命令
曾老师的演示
## 查看inode
[root@localhost ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9.3M 35K 9.3M 1% /
devtmpfs 119K 377 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 750 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 250K 327 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
## 从/dev/zero中取出1024k数据,保存到/opt/disk文件中
[root@localhost ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.0063998 s, 164 MB/s
## 查看/opt/disk大小为1M
[root@localhost ~]# ll -h /opt/disk
-rw-r--r-- 1 root root 1.0M Mar 29 12:26 /opt/disk
## 格式化,指定inode
[root@localhost ~]# mkfs.ext4 -i 1024 /opt/disk
mke2fs 1.42.9 (28-Dec-2013)
/opt/disk is not a block special device.
Proceed anyway? (y,n) y
Filesystem too small for a journal
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
1024 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=1048576
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
## 在/下创建一个目录data1
[root@localhost ~]# mkdir /data1
## 刚才的分区,挂载到/data1下
[root@localhost ~]# mount -t ext4 -o loop /opt/disk /data1
## 查看新分区inode大小
[root@localhost ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9.3M 35K 9.3M 1% /
devtmpfs 119K 381 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 756 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 250K 327 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
/dev/loop0 1.0K 11 1013 2% /data1
## 查看新分区block大小
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 39M 449M 8% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/loop0 891K 21K 799K 3% /data1
## 演示inode被沾满
[root@localhost data1]# touch 1001..1014
touch: cannot touch ‘1014’: No space left on device
[root@localhost data1]# touch zls
touch: cannot touch ‘zls’: No space left on device
[root@localhost data1]# touch zls
touch: cannot touch ‘zls’: No space left on device
[root@localhost data1]# touch zls1
touch: cannot touch ‘zls1’: No space left on device
[root@localhost data1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 17G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 39M 449M 8% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/loop0 891K 39K 781K 5% /data1
## 报错
No space left on device : 该设备上没有可用的空间了
以上是关于文件的属性及类型的主要内容,如果未能解决你的问题,请参考以下文章