文件的属性及类型

Posted 少年已不年少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的属性及类型相关的知识,希望对你有一定的参考价值。

一. 文件属性

[root@Quanyi ~]# ll
total 328
- rw-r--r--. 1 root root      0 Mar 26 20:29 “
- rw-r--r--. 1 root root 164034 Mar 26 16:45 blog.driverzeng.com_access_(1).log
# 以空格为分隔符第一列:
文件的类型
-:普通文件                           touch
d:directory 目录                     mkdir
l:link 软连接文件 (windo快捷方式)    ln
---------------------------------------------------------
c:设备文件(char字符设备文件)和字符相关的设备,举例:打印机,终端
b:设备文件(block块设备文件)和存储相关的设备,举例:硬盘,U盘,磁盘分区
s:socket安全套接字文件,网络编程
p:pipe管道文件,父进程与子进程之间的通信文件
# 以空格为分隔符第二列:
文件的权限:permission denied (权限被拒绝)
rw- r-- r--
rwx rwx rwx
r: read 读
w:write 写
x:exec 执行
-:该权限位上没有权限
# 以空格为分隔符第三列:
指该文件的硬链接数
# 以空格为分隔符第四列:
该文件的属主
# 以空格为分隔符第五列:
该文件的属组
# 以空格为分隔符第六列:
该文件的大小
#  第七列:
文件的创建时间
# 最后一列
文件名

二. 文件类型查看命令

  1. file 查看命令

file    查看命令
## 语法
file    [选项]...   文件名...
## 举例:
[root@Quanyi ~]# file blog.driverzeng.com_access_.log
blog.driverzeng.com_access_.log: ASCII text, with very long lines
[root@Quanyi ~]# 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]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped
[root@Quanyi ~]# file /dev/sda
/dev/sda: block special
[root@Quanyi ~]# file /dev/pts/0
/dev/pts/0: character special

三. 系统的链接文件

  1. 一个文件在linux中,会被分为两部分:

  • 真实数据:文件中的真实内容

  • 元数据:用来形容一个文件数据

  1. 一个文件在linux中,存储也会被分为两部分

  • inode:用来存储,文件的元数据

  • block:用来存储,文件的真实数据。一个block是4k

四. 查看磁盘空间命令

  1. df 查看磁盘空间

df  查看磁盘空间命令
## 选项
-h:human 人类可读
-i:查看ionde空间
## 举例:
# 查看磁盘的block
[root@Quanyi ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.3G   18G   7% /
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M   14M  473M   3% /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@Quanyi ~]# df -hi
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda3        9.3M   31K  9.3M    1% /
devtmpfs         119K   373  119K    1% /dev
tmpfs            122K     1  122K    1% /dev/shm
tmpfs            122K   710  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

五. 链接文件的种类

一. 软链接文件

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

ls -i:查看该文件的inode
  1. ln 创建软链接的命令

## 创建软链接的命令
ln:link 链接,创建链接文件
-s:soft 软,创建软链接文件
ln -s 源文件 链接文件的位置
## 举例:
[root@Quanyi ~]# ln -s /tmp/shanghai ./tmp
[root@Quanyi ~]# ll
lrwxrwxrwx. 1 root root     13 Mar 29 16:26 tmp -> /tmp/shanghai
[root@Quanyi ~]# ln -s /lol/1.txt /tmp/2.txt
[root@Quanyi ~]# ll /tmp
total 12
drwxr-xr-x. 2 root root  23 Mar 26 14:07 123
lrwxrwxrwx. 1 root root  10 Mar 29 17:11 2.txt -> /lol/1.txt
## 注意:1.软链接文件,会受到源文件的影响,如果源文件删除,软链接文件也无法使用
[root@Quanyi ~]# cat /lol/1.txt
欢迎来到德莱联盟
[root@Quanyi ~]# cat /tmp/2.txt
欢迎来到德莱联盟
[root@Quanyi ~]# rm -f /tmp/2.txt
[root@Quanyi ~]# cat /lol/1.txt
欢迎来到德莱联盟

二 . 硬链接文件

  • 若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名

  1. ln 创建硬链接的命令

## 创建硬链接的命令
ln
ln 源文件 链接文件的位置
## 举例:
[root@Quanyi ~]# ln /lol/1.txt /opt
## 查看:
[root@Quanyi /lol]# ls -li /opt/1.txt
17211985 -rw-r--r--. 2 root root 25 Mar 29 17:09 /opt/1.txt
## 查看文件内容:
[root@Quanyi ~]# cat /opt/1.txt
欢迎来到德莱联盟

特性:

硬链接文件,不会受到原文件的影响
所有硬链接文件的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 : 该设备上没有可用的空间了

[博客地址]**(​​https://blog.51cto.com/u_15548533​​)


以上是关于文件的属性及类型的主要内容,如果未能解决你的问题,请参考以下文章

文件的属性及类型

linux 文件属性及类型

linux文件属性及类型

文件的属性及类型

文件的属性及类型

文件的属性及类型