Linux基础_文件的属性及类型

文件的属性及类型

文件属性

[root@localhost ~]# ll
total 400
- rw-r--r--. 1 root root 1.6K Mar 21 17:30 detail?ct=503316480
d rwxr-xr-x. 2 root root    6 Mar 21 16:56 work2


# 以空格为分隔符第一列:
文件的类型
-:普通文件                         touch
d:directory 目录                   mkdir
l:link 软链接文件(windows快捷方式)  ln


c:设备文件(char字符设备文件)和字符相关的设备,举例:打印机,终端
b:设备文件(block块设备文件)和存储相关的设备,举例:硬盘,U盘,磁盘分区
s:socket安全套接字文件,网络编程
p:pipe管道文件,父进程与子进程之间的通信文件


# 以空格为分隔符第二列:
文件的权限:Permission denied(没有权限,权限被拒绝)
rwxr-xr-x
rw-r--r--

r:read 读
w:write 写
x:exec 执行
-:该权限位上没有权限

# 以空格为分隔符第三列:
指该文件的硬链接数

# 以空格为分隔符第四列:
该文件的属主

# 以空格为分隔符第五列:
该文件的属组

# 以空格为分隔符第六列:
该文件的大小

# 第七列
文件的创建时间

# 最后一列
文件名

文件类型查看命令

# 命令:
file

# 语法:
file    [选项]    文件...

[root@localhost ~]# file kobe.jpg 
kobe.jpg: JPEG image data, JFIF standard 1.01
[root@localhost ~]# file blog.driverzeng.com_access.log 
blog.driverzeng.com_access.log: ASCII text, with very long lines

[root@localhost ~]# file test.sh
test.sh: ASCII text
[root@localhost ~]# file test.sh
test.sh: Bourne-Again shell script, ASCII text executable

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

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

[root@localhost ~]# file /dev/pts/0
/dev/pts/0: character special

系统的链接文件

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

  • 真实数据:文件中的真实内容
  • 元数据:用来形容一个文件数据

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

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

## 查看磁盘空间
# 命令:
df

## 选项
-h:human人类可读
-i:查看inode空间

## 举例
# 查看磁盘的block

[root@localhost ~]# 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  7.7M  479M   2% /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   28K  9.3M    1% /
devtmpfs         119K   377  119K    1% /dev
tmpfs            122K     1  122K    1% /dev/shm
tmpfs            122K   707  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号

## 创建软链接的命令
lnlink 链接,创建

# 选项
-s:soft 软,创建软链接文件

# 用法
ln -s     源文件     链接文件的位置

举例:
[root@localhost ~]# ln -s /root/kobe.jpg /work/
[root@localhost ~]# ll /work
total 4
-rw-r--r--. 1 root root 58 Mar 23 23:12 heiheihei.txt
lrwxrwxrwx. 1 root root 14 Mar 29 21:23 kobe.jpg -> /root/kobe.jpg

[root@localhost ~]# ln -s /root/kobe.jpg /work/shen
[root@localhost ~]# ll /work
total 4
-rw-r--r--. 1 root root 58 Mar 23 23:12 heiheihei.txt
lrwxrwxrwx. 1 root root 14 Mar 29 21:23 kobe.jpg -> /root/kobe.jpg
lrwxrwxrwx. 1 root root 14 Mar 29 21:24 shen -> /root/kobe.jpg

# 注意:软链接文件,会受到源文件的影响,如果源文件删除,软链接文件也无法使用
举例:
[root@localhost ~]# ln -s /root/kobe.txt /work/
[root@localhost ~]# ln -s /root/kobe.txt /work/kshen.txt
[root@localhost ~]# ll /work
total 4
-rw-r--r--. 1 root root 58 Mar 23 23:12 heiheihei.txt
lrwxrwxrwx. 1 root root 14 Mar 29 21:23 kobe.jpg -> /root/kobe.jpg
lrwxrwxrwx. 1 root root 14 Mar 29 21:28 kobe.txt -> /root/kobe.txt
lrwxrwxrwx. 1 root root 14 Mar 29 21:29 kshen.txt -> /root/kobe.txt

[root@localhost ~]# cat /work/kobe.txt 
123
456
abc
[root@localhost ~]# cat /work/kshen.txt 
123
456
abc
[root@localhost ~]# rm -f /work/kshen.txt 
[root@localhost ~]# cat /work/kobe.txt 
123
456
abc
[root@localhost ~]# rm -f /root/kobe.txt 
[root@localhost ~]# cat /work/kobe.txt 
cat: /work/kobe.txt: No such file or directory

[root@localhost ~]# ll /work
如图显示报错

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

## 用法:
ln    源文件    链接文件的位置

## 举例
[root@localhost ~]# ln /root/paixu1.txt /work2
[root@localhost ~]# ln /root/paixu1.txt /work2/ylj.txt

## 查看
[root@localhost ~]# ls -il /root/paixu1.txt 
33575016 -rw-r--r--. 3 root root 48 Mar 24 20:09 /root/paixu1.txt
[root@localhost ~]# ls -li /work2/paixu1.txt 
33575016 -rw-r--r--. 3 root root 48 Mar 24 20:09 /work2/paixu1.txt
[root@localhost ~]# ls -li /work2/ylj.txt 
33575016 -rw-r--r--. 3 root root 48 Mar 24 20:09 /work2/ylj.txt

## 查看文件内容
[root@localhost ~]# cat /work2/ylj.txt 
B:A:123
C:F:223
D:n:421
J:m:632
K:l:756
M:g:364
[root@localhost ~]# cat /work2/ylj.txt 
B:A:123
C:F:223
D:n:421
J:m:632
K:l:756
M:g:364
[root@localhost ~]# cat /root/paixu1.txt 
B:A:123
C:F:223
D:n:421
J:m:632
K:l:756
M:g:364


## 特性
1.硬链接文件,不会受到源文件的影响
2.所有硬链接文件的inode号与源文件相同
3.修改一个文件,其他文件都会改变
4.不允许给目录创建硬链接
5.默认情况下,新创建的目录,有两个硬链接,一个是目录本身,一个是该目录下的.目录


[root@localhost ~]# ls -lai /root/lianjieshu -d
50693851 drwxr-xr-x. 2 root root 6 Mar 29 22:40 /root/lianjieshu
[root@localhost ~]# ls -lai /root/lianjieshu
total 4
50693851 drwxr-xr-x.  2 root root    6 Mar 29 22:40 .


## 报错(不允许给目录创建硬链接)
[root@localhost ~]# ln /root/lianjieshu /work2
ln: ‘/root/lianjieshu’: hard link not allowed for directory

硬链接和软链接的区别

区别 硬链接 软连接
创建命令 ln ln -s
对象 只能对普通文件创建,不能对目录 普通文件和目录
是否受到源文件的影响
inode号 相同 不同
跨分区创建 不可以 可以

企业面试题

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

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

   使用find命令

思维导图

posted @   悠悠哉55  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示