文件的属性及类型

Posted 师莹

tags:

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

文件的属性

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

文件类型查看命令

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

系统的链接文件

一个文件在Linux中,会被分为两部分:

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

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

一个文件在Linux中,存储也会被分为两部分:

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

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

[root@shiying ~]# ll -h blog.driverzeng.com_access.log
-rw-r--r--. 1 root root 56K Mar 25 10:14 blog.driverzeng.com_access.log
[root@shiying ~]# stat blog.driverzeng.com_access.log
File: ‘blog.driverzeng.com_access.log’
Size: 56479       Blocks: 112        IO Block: 4096   regular file
Device: 803h/2051d  Inode: 33574978    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-03-29 23:54:46.229133636 +0800
Modify: 2022-03-25 10:14:02.000000000 +0800
Change: 2022-03-25 18:15:06.669015954 +0800
Birth: -
## 查看磁盘空间
df
## 选项
-h:human人类可读
-i:查看inode空间
## 举例
[root@shiying ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.6M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        18G  1.4G   17G   8% /
/dev/sda1       497M  125M  373M  25% /boot
tmpfs           199M     0  199M   0% /run/user/0
# 查看磁盘的block
[root@shiying ~]# df -hi
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         245K   383  245K    1% /dev
tmpfs            248K     1  248K    1% /dev/shm
tmpfs            248K   708  247K    1% /run
tmpfs            248K    16  248K    1% /sys/fs/cgroup
/dev/sda3        8.8M   27K  8.8M    1% /
/dev/sda1        250K   326  250K    1% /boot
tmpfs            248K     1  248K    1% /run/user/0

链接文件的种类

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

ls
-i:查看该文件的inode号
## 创建软链接的命令
ln:link 链接,创建链接文件
-s:soft 软,创建软链接文件
ln-s源文件链接文件的位置
[root@shiying ~]# ln -s /root/zls.txt /tmp/
[root@shiying ~]# ll /tmp/
lrwxrwxrwx. 1 root root  13 Mar 30 00:29 zls.txt -> /root/zls.txt
[root@shiying ~]# ln -s /root/zls.txt /tmp/zls2.txt
[root@shiying ~]# ll /tmp/
lrwxrwxrwx. 1 root root  13 Mar 30 00:32 zls2.txt -> /root/zls.txt
lrwxrwxrwx. 1 root root  13 Mar 30 00:29 zls.txt -> /root/zls.txt
# 1.软链接文件,会受到源文件的影响,如果源文件删除,软链接文件也无法使
[root@shiying ~]# cat /tmp/zls.txt
123456
[root@shiying ~]# cat /tmp/zls2.txt
123456
[root@shiying ~]# cat /root/zls.txt
123456
[root@shiying ~]# rm -f /tmp/zls.txt
[root@shiying ~]# cat /tmp/zls2.txt
123456
[root@shiying ~]# cat /root/zls.txt
123456
[root@shiying ~]# rm -f /root/zls.txt
[root@shiying ~]# cat /tmp/zls2.txt
cat: /tmp/zls2.txt: No such file or directory
[root@shiying ~]# ll /tmp/zls2.txt
lrwxrwxrwx. 1 root root 13 Mar 30 00:32 /tmp/zls2.txt -> /root/zls.txt
  • 硬链接文件

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

## 创建硬链接的命令
ln
ln源文件链接文件的位置
## 举例
[root@shiying ~]# ln /root/info.txt /opt/
[root@shiying ~]# ln /root/info.txt /opt/info1.txt
## 查看
[root@shiying ~]# ls -li /root/info.txt
33574990 -rw-r--r--. 3 root root 136 Mar 26 00:04 /root/info.txt
[root@shiying ~]# ls -li /opt/info.txt
33574990 -rw-r--r--. 3 root root 136 Mar 26 00:04 /opt/info.txt
[root@shiying ~]# ls -li /opt/info1.txt
33574990 -rw-r--r--. 3 root root 136 Mar 26 00:04 /opt/info1.txt
## 查看文件内容
[root@shiying ~]# cat /root/info.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384
[root@shiying ~]# cat /opt/info.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384
[root@shiying ~]# cat /opt/info1.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384
## 特性
1.硬链接文件,不会受到原文件的影响
2.所有硬链接文件的inode号与源文件相同
3.修改一个文件,其他文件都会改变
4.不允许给目录创建硬链接
5.默认情况下,新创建的目录,有两个硬链接,一个是目录本身,一个是该目录下的.目录
[root@shiying ~]# ls -lai /root/family -d
1956 drwxr-xr-x. 2 root root 6 Mar 26 18:59 /root/family
[root@shiying ~]# ls -lai /root/family
total 4
1956 drwxr-xr-x. 2 root root    6 Mar 26 18:59 .
## 报错
[root@shiying ~]# ln /root/wook /tmp/work
ln: failed to access ‘/root/wook’: No such file or directory

硬链接和软链接的区别

区别

硬链接

软链接

创建命令

ln

ln -s

对象

只能对普通文件创建

普通文件和目录

是否受到源文件影响

inode号

相同

不同

跨分区创建

不可以

可以

企业面试题

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

# 1.首先磁盘存储被划分为两块inode:存储文件的元数据block:存储文件的真实数据
# 2.在问题当中剩余500G,这500G指的是block
# 3.应该是inode被占满了
# 4.这种情况,一般是系统中,小文件太多导致的
# 5.找到系统中的小文件(没用的),并删除
##### 使用find命令

演示

## 查看inode
[root@localhost ~]# df -ih
## 从/dev/zero中取出1024k数据,保存到/opt/disk文件中
[root@localhost ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024
## 查看/opt/disk大小为1M
[root@localhost ~]# ll -h /opt/disk
## 格式化,指定inode
[root@localhost ~]# mkfs.ext4 -i 1024 /opt/disk
## 在/下创建一个目录data1
[root@localhost ~]# mkdir /data1
## 刚才的分区,挂载到/data1下
[root@localhost ~]# mount -t ext4 -o loop /opt/disk /data1
## 查看新分区inode大小
[root@localhost ~]# df -ih
## 查看新分区block大小
[root@localhost ~]# df -h
## 演示inode被沾满
[root@localhost data1]# touch 1001..1014
touch: cannot touch ‘1014’: No space left on device
[root@localhost data1]# touch zlstouch: cannot touch ‘zls’: No space left on device
[root@localhost data1]# touch zlstouch: cannot touch ‘zls’: No space left on device
[root@localhost data1]# touch zls1touch: cannot touch ‘zls1’: No space left on device
[root@localhost data1]# df -h
## 报错
No space left on device :该设备上没有可用的空间了


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

文件的属性及类型

linux 文件属性及类型

linux文件属性及类型

文件的属性及类型

文件的属性及类型

文件的属性及类型