文件的属性及类型
文件的属性及类型
文件属性
[root@localhost ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 29 08:40 lza
-rw-r--r--. 1 root root 0 Mar 29 08:41 lza.txt
# 以空格为分割符第一列
文件的类型:
-:普通文件 touch
d:directory 目录 mkdir
l:link 软连接文件 ln
----------------------------------------------
c:设备文件(char字符设备文件)和字符相关的设备
b:设备文件(block块设备文件)和存储相关的设备
s:socket 安全套接字文件,网络编程
p:pipe 管道文件,父进程与子进程之间的通信文件
# 以空格为分隔符第二列
文件的权限:permission denied(权限被拒绝)
rw- r-- r--
rwx rwx rwx
r:read 读
w:write 写
x:exec 执行
-:该权限位上没有权限
# 以空格为分隔符第三列
指该文件的硬链接数
# 以空格为分隔符第四列
该文件的属主
# 以空格为分隔符第五列
该文件的属组
# 以空格为分隔符第六列
该文件的大小
# 第七列
文件的创建时间
# 最后一列
文件名
文件类型查看命令-file
file 查看文件类型
# 语法
file [选项]... 文件...
# 例:
[root@localhost ~]# file lza
lza: directory
[root@localhost ~]# file /bin
/bin: symbolic link to `usr/bin'
[root@localhost ~]# 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@localhost ~]# file /dev/sda
/dev/sda: block special
[root@localhost ~]# file a.sh
a.sh: cannot open (No such file or directory)
[root@localhost ~]# file /home/lza/
/home/lza/: directory
系统的链接文件
一个文件在Linux中,会被分为两部分
- 真实数据:文件中的真实内容
- 元数据:用来形容一个文件数据
一个文件在Linux中,存储也会被分为两部分
- inode:用来存储,文件的元数据
- block:用来存储,文件的真实数据,一个block是4k
# 查看磁盘空间
df
# 选项
-h:human 人类可读
-i:查看inode空间
# 查看磁盘的block
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
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/sda3 19G 1.4G 18G 8% /
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
# 查看磁盘的inode
[root@localhost ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 119K 378 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 713 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda3 9.3M 27K 9.3M 1% /
/dev/sda1 250K 326 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
链接文件的种类
软链接文件
软链接相当于Windows的快捷方式,软链接文件会将inode指向源文件的block
ls -i:查看该文件的inode号
# 软链接语法
ln -s 源文件 链接文件的位置
# 软链接文件,会受到源文件的影响,如果源文件删除,软连接文件也无法使用
例:
[root@localhost ~]# ln -s /zls/ ./aaa
[root@localhost ~]# ll
total 0
lrwxrwxrwx. 1 root root 5 Mar 29 21:17 aaa -> /zls/
drwxr-xr-x. 2 root root 6 Mar 29 08:40 lza
-rw-r--r--. 1 root root 0 Mar 29 08:41 lza.txt
[root@localhost ~]# ll aaa/
total 4
-rw-r--r--. 1 root root 122 Mar 29 21:16 zls.txt
硬链接文件
若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名
# 创建硬链接的命令
ln 源文件 链接文件的位置
# 例:
[root@localhost ~]# ln /zls/zls.txt bbb
[root@localhost ~]# ll
total 4
lrwxrwxrwx. 1 root root 5 Mar 29 21:17 aaa -> /zls/
-rw-r--r--. 2 root root 122 Mar 29 21:16 bbb
drwxr-xr-x. 2 root root 6 Mar 29 08:40 lza
-rw-r--r--. 1 root root 0 Mar 29 08:41 lza.txt
[root@localhost ~]# cat bbb
111
222
# 特性
1.硬链接文件,不会受到源文件的影响
2.所有硬链接文件的inode号与源文件相同
3.修改一个文件,其他文件都会改变
4.不允许给目录创建硬链接
5.某认情况下,新建的目录,有两个硬链接,一个是目录本身,一个是该目录下的.目录
例:
[root@localhost ~]# ls -lai /zls/zls.txt -d
51472323 -rw-r--r--. 2 root root 122 Mar 29 21:16 /zls/zls.txt
[root@localhost ~]# ls -lai /zls/zls.txt
51472323 -rw-r--r--. 2 root root 122 Mar 29 21:16 /zls/zls.txt
硬链接和软连接的区别
区别 | 硬链接 | 软连接 |
---|---|---|
创建命令 | ln | ln -s |
对象 | 只能对普通文件创建 | 普通文件和目录 |
是否受到源文件影响 | 否 | 是 |
inode号 | 相同 | 不同 |
跨分区创建 | 不可以 | 可以 |
报错
No space left on device :该设备上没有可用的空间了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?