文件属性

# 以空格为分隔符第一列:
文件的类型
-: 普通文件                         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@web ~]# file /dev/pts/ptmx
/dev/pts/ptmx: character special

[root@web ~]# file tt.sh 
tt.sh: Bourne-Again shell script, UTF-8 Unicode text executable

[root@web ~]# file hg/
hg/: directory

系统的链接文件

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

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

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

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

## 查看磁盘空间
df
## 选项
-h:human人类可读
-i:查看inode空间
例↓
# 查看磁盘的block
[root@23:45:28wudidesangege ~]\ 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.5G   18G   8% /
/dev/sda1       497M  125M  373M  26% /boot
tmpfs            98M     0   98M   0% /run/user/0
以上每列分别表示的内容↓
磁盘分区名 分区内存大小 已使用大小 剩余可用 使用百分比 路径

# 查看磁盘的inode
[root@23:54:03wudidesangege ~]\ 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   28K  9.3M    1% /
/dev/sda1        250K   326  250K    1% /boot
tmpfs            122K     1  122K    1% /run/user/0

链接文件的种类

  • 软链接文件

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

ls -i:查看该文件的inode号
[root@web ~]# ls -i 1.sh 
34259377 1.sh

## 创建软链接的命令↓
ln:link 链接,创建链接文件
-s:soft 软,创建软链接文件
# 语法
ln -s 源文件 链接文件的位置

[root@web ~]# ln -s 1.sh /opt
[root@web ~]# ll /opt
total 0
lrwxrwxrwx 1 root root   4 Jul  3 15:44 1.sh -> 1.sh
< font color 
##**这个时候>后面的1.sh会闪。。原因没加绝对路径**

img

[root@web ~]# ln -s /root/1.sh /opt/2.sh
[root@web ~]# ll /opt/
total 0
lrwxrwxrwx 1 root root   4 Jul  3 15:44 1.sh -> 1.sh
lrwxrwxrwx 1 root root  10 Jul  3 15:44 2.sh -> /root/1.sh

img

# 1.软链接文件,会受到源文件的影响,如果源文件删除,软链接文件也无法使用
[root@web ~]# cat /opt/2.sh 
. /etc/init.d/functions

for num in 5 6 7 8 9 31 41 51 61 71;do
ping -W1  -c1 10.0.0.$num &>/dev/null
if [ $? -eq 0 ];then
  sshpass -p '1' ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub root@10.0.0.$num &>/dev/null
  action "主机:10.0.0.$num" /bin/true
else
  action "主机:10.0.0.$num" /bin/false
fi
done

[root@web ~]# cat 1.sh 
. /etc/init.d/functions

for num in 5 6 7 8 9 31 41 51 61 71;do
ping -W1  -c1 10.0.0.$num &>/dev/null
if [ $? -eq 0 ];then
  sshpass -p '1' ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub root@10.0.0.$num &>/dev/null
  action "主机:10.0.0.$num" /bin/true
else
  action "主机:10.0.0.$num" /bin/false
fi
done

[root@web ~]# rm -fr 1.sh 
[root@web ~]# cat /opt/2.sh 
cat: /opt/2.sh: No such file or directory
  • 硬链接文件

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

## 创建硬链接的命令↓
ln
# 语法↓
ln 源文件 链接文件的位置
[root@web ~]# ln /root/1.abc /opt
[root@web ~]# ll /opt
total 4
-rw-r--r-- 2 root root   8 Jul  3 12:02 1.abc

## 特性
1.硬链接文件,不会受到原文件的影响
[root@web ~]# rm -fr 1.abc 
[root@web ~]# cat /opt/1.abc 
abc
123
2.所有硬链接文件的inode号与源文件相同
[root@web ~]# ls -i /opt/1.abc 
34259365 /opt/1.abc
[root@web ~]# ls -i 1.abc 
34259365 1.abc
3.修改一个文件,其他文件都会改变
[root@web ~]# cat 123.txt 
123
[root@web ~]# echo 321 >> 123.txt 
[root@web ~]# cat 123.txt 
123
321
[root@web ~]# cat /opt/123.txt 
123
321
4.默认情况下,新创建的目录,有两个硬链接,一个是目录本身,一个是该目录下的.目录
[root@web ~]# mkdir ml
[root@web ~]# ll -ai ml -d
53543018 drwxr-xr-x 2 root root 6 Jul  3 16:04 ml
5.不允许给目录创建硬链接
[root@web ~]# ln hg /opt
ln: ‘hg’: hard link not allowed for directory

硬链接和软链接的区别

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

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

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

展示

## 查看inode
[root@web ~]# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         371K   378  371K    1% /dev
tmpfs            374K     1  374K    1% /dev/shm
tmpfs            374K   852  373K    1% /run
tmpfs            374K    16  374K    1% /sys/fs/cgroup
/dev/sda3        9.3M  173K  9.1M    2% /
/dev/sda1        250K   326  250K    1% /boot
tmpfs            374K     1  374K    1% /run/user/0
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/b43c58b74c033b128d2c3b5d360845ef570ee805fe7dc8f8f512c07eece67aa0/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/2c3534634f5b35864283060540a57ddf4b86ef77019a5d862e25e87a654ce35c/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/24fbaa6890185b005e992bb96f26795460bdbfc4dcd675cf11305cece5ff88c0/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/0d52192638fbc10a5d3dca428358a898f27e75ee41935a7dfc6d9b07a1a84289/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/3ae46d914ff8c16363e026224294fb4ecff4a8eb65b4d575443e8792ce66aad9/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/0ab200c65d67ad32ad93bf21a73d70c6cf43bcf647e3e7f830f407e31f38e7a3/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/73ec34e0be1e467b67f02d95452fc472ff639ae9b2e15ecaf8a0a92706518299/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/bd4294449040836e0408be7731a9f10f1f3f740124089173831c4015c3d73e4f/merged

## 从/dev/zero中取出1024k数据,保存到/opt/disk文件中
[root@web ~]# 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.00156908 s, 668 MB/s

## 查看/opt/disk大小为1M
[root@web ~]# ll -h /opt/disk
-rw-r--r-- 1 root root 1.0M Jul  3 16:15 /opt/disk

## 格式化,指定inod
[root@web ~]# 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@web ~]# mkdir /data1

## 刚才的分区,挂载到/data1下
mount -t ext4 -o loop /opt/disk /data1

## 查看新分区inode大小
[root@web ~]# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         371K   382  371K    1% /dev
tmpfs            374K     1  374K    1% /dev/shm
tmpfs            374K   858  373K    1% /run
tmpfs            374K    16  374K    1% /sys/fs/cgroup
/dev/sda3        9.3M  173K  9.1M    2% /
/dev/sda1        250K   326  250K    1% /boot
tmpfs            374K     1  374K    1% /run/user/0
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/b43c58b74c033b128d2c3b5d360845ef570ee805fe7dc8f8f512c07eece67aa0/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/2c3534634f5b35864283060540a57ddf4b86ef77019a5d862e25e87a654ce35c/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/24fbaa6890185b005e992bb96f26795460bdbfc4dcd675cf11305cece5ff88c0/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/0d52192638fbc10a5d3dca428358a898f27e75ee41935a7dfc6d9b07a1a84289/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/3ae46d914ff8c16363e026224294fb4ecff4a8eb65b4d575443e8792ce66aad9/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/0ab200c65d67ad32ad93bf21a73d70c6cf43bcf647e3e7f830f407e31f38e7a3/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/73ec34e0be1e467b67f02d95452fc472ff639ae9b2e15ecaf8a0a92706518299/merged
overlay          9.3M  173K  9.1M    2% /var/lib/docker/overlay2/bd4294449040836e0408be7731a9f10f1f3f740124089173831c4015c3d73e4f/merged
/dev/loop0       1.0K    11  1013    2% /data1

## 查看新分区block大小
[root@web ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.5G     0  1.5G   0% /dev
tmpfs           1.5G     0  1.5G   0% /dev/shm
tmpfs           1.5G   10M  1.5G   1% /run
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
/dev/sda3        19G  7.0G   12G  38% /
/dev/sda1       497M  125M  373M  26% /boot
tmpfs           299M     0  299M   0% /run/user/0
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/b43c58b74c033b128d2c3b5d360845ef570ee805fe7dc8f8f512c07eece67aa0/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/2c3534634f5b35864283060540a57ddf4b86ef77019a5d862e25e87a654ce35c/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/24fbaa6890185b005e992bb96f26795460bdbfc4dcd675cf11305cece5ff88c0/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/0d52192638fbc10a5d3dca428358a898f27e75ee41935a7dfc6d9b07a1a84289/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/3ae46d914ff8c16363e026224294fb4ecff4a8eb65b4d575443e8792ce66aad9/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/0ab200c65d67ad32ad93bf21a73d70c6cf43bcf647e3e7f830f407e31f38e7a3/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/73ec34e0be1e467b67f02d95452fc472ff639ae9b2e15ecaf8a0a92706518299/merged
overlay          19G  7.0G   12G  38% /var/lib/docker/overlay2/bd4294449040836e0408be7731a9f10f1f3f740124089173831c4015c3d73e4f/merged
/dev/loop0      891K   21K  799K   3% /data1