第五章·Linux文件管理-文件属性及类型

1、Linux系统文件属性

[root@sunedu ~]# ll

total 4

-rw-------. 1 root root 1592 Feb 19 12:13 anaconda-ks.cfg

-rw-------.        #文件类型与权限

1            #硬链接次数

root            #所属用户

root            #所属组

1592            #文件大小

Feb 19 12:13        #最新修改的时间与日期

anaconda-ks.cfg    #文件或目录名称

2、Linux系统文件属性

通过颜色或者后缀判断文件类型不一定准确.

ls -l 文件名 //看第一个字符

格式 说明

- 普通文件(文本, 二进制, 压缩, 图片, 日志等)

d 目录文件

b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2

c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero

s 套接字文件, 进程间通信(socket)

p 管道文件

l 链接文件

 

#示例

[root@sunedu ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client

ls: cannot access /run/dmeventd-client: No such file or directory

-rwxr-xr-x. 1 root root 117608 Aug 20 2019 /bin/ls

srw-rw-rw-. 1 root root 0 Feb 19 20:35 /dev/log

brw-rw----. 1 root disk 8, 0 Feb 19 20:35 /dev/sda

crw--w----. 1 root tty 4, 1 Feb 19 20:35 /dev/tty1

lrwxrwxrwx. 1 root root 22 Feb 19 12:09 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts

drwxrwxrwt. 9 root root 200 Feb 19 20:35 /tmp

2.1、查看文件类型命令file

[root@sunedu ~]# file /etc/hosts

/etc/hosts: ASCII text

[root@sunedu ~]# 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@sunedu ~]# file /dev/sda

/dev/sda: block special

[root@sunedu ~]# file /dev/tty1

/dev/tty1: character special

[root@sunedu ~]# file /etc/grub2.cfg

/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg‘

[root@sunedu ~]# file /home/

/home/: directory

注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别

3、系统连接文件

文件有文件名和数据,在Linux上被分成两个部分:用户数据(user data)与元数据(metadata)

 

用户数据:文件数据块(data block),数据块是记录文件真实内容的地方,我们将其称为Block

元数据:文件的附加属性,例如:文件大小,创建时间,属组,属主...等,我们称其为Inode

 

在Linux中,inode是文件元数据的一部分,但其并不包含文件名,inode号即索引节点号

 

文件名仅是为了方便人们的记忆和使用,系统或者程序通过inode号寻找正确的文件数据块。

 

下图为文件读取的流程:

第五章·Linux文件管理-文件属性及类型

  • Linux系统引入了两种链接:

1.硬链接(hard link)

2.软链接(又叫:符号链接即soft link或symbolic link)

3.1、软连接

  • 什么是软连接

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

     

    当我们访问这个软链接文件时,其实就是在访问源文件的本身。

    1.那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。

    2.那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。

    3.如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。

    [root@sunedu ~]# touch soft_link

    [root@sunedu ~]# ln -s soft_link /tmp/soft_link

    [root@sunedu ~]# ls -li soft_link /tmp/soft_link

    33574982 -rw-r--r--. 1 root root 0 Feb 19 20:45 soft_link

    16815654 lrwxrwxrwx. 1 root root 9 Feb 19 20:45 /tmp/soft_link -> soft_link

  • 软连接的应用场景

    1)软件升级

    2)代码发布

    3)不方便移动的目录

    4)数据回滚

    5)程序读取

3.2、硬链接

  • 什么是硬链接

    若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名,如下图所示hard link就是file的一个别名,他们有共同的inode

    [root@sunedu ~]# rm -f /tmp/soft_link

    [root@sunedu ~]# ln soft_link /tmp/soft_link

    [root@sunedu ~]# ls -li soft_link /tmp/soft_link

    33574982 -rw-r--r--. 2 root root 0 Feb 19 20:45 soft_link

    33574982 -rw-r--r--. 2 root root 0 Feb 19 20:45 /tmp/soft_link

    第五章·Linux文件管理-文件属性及类型

3.3总结:硬链接文件与软连接文件区别

1)创建命令不同

软链接:ln -s

硬链接:ln

2)目录不能创建硬链接,并且硬链接不可以跨越系统的分区,软链接可以

3)硬链接文件与源文件inode相同,软链接文件与源文件inode不同

4)删除软链接文件,对源文件无影响,但是删除软链接源文件对软链接文件有影响

5)删除硬链接文件,对源文件也无影响,并且删除源文件,对硬链接文件也无影响

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

用户数据把inode沾满了

[root@sunedu ~]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/vg_db01-lv_root 1152816 76391 1076425 7% /

tmpfs 238319 1 238318 1% /dev/shm

/dev/sda1 128016 39 127977 1% /boot

 

#模拟

[root@sunedu ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024

[root@sunedu ~]# mkfs.ext4 -i 1024 /opt/disk

[root@sunedu ~]# mkdir /data1

[root@sunedu ~]# mount -t ext4 -o loop /opt/disk /data1

[root@sunedu data1]# touch file{1..2000}

touch: 无法创建"file1014": 设备上没有空间

touch: 无法创建"file1015": 设备上没有空间

touch: 无法创建"file1016": 设备上没有空间

touch: 无法创建"file1017": 设备上没有空间

touch: 无法创建"file1018": 设备上没有空间

[root@sunedu data1]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg_db01-lv_root 18G 2.0G 15G 12% /

tmpfs 931M 0 931M 0% /dev/shm

/dev/sda1 485M 39M 421M 9% /boot

/opt/disk 891K 39K 801K 5% /data1

 

[root@sunedu data1]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/vg_db01-lv_root 1152816 76393 1076423 7% /

tmpfs 238319 1 238318 1% /dev/shm

/dev/sda1 128016 39 127977 1% /boot

/opt/disk 1024 1024 0 100% /data1

硬连接数计算

[root@sunedu ~]# mkdir hard

[root@sunedu ~]# ll hard -d

drwxr-xr-x 2 root root 4096 6月 1 12:50 hard

[root@sunedu ~]# cd hard

[root@sunedu hard]# mkdir test1

[root@sunedu ~]# ll -d hard

drwxr-xr-x 3 root root 4096 6月 1 12:50 hard

[root@sunedu ~]# cd hard

[root@sunedu hard]# touch test

[root@sunedu ~]# ll -d hard

drwxr-xr-x 3 root root 4096 6月 1 12:50 hard

第五章·Linux文件管理-文件属性及类型

上一篇:HugePages on Linux


下一篇:vim上send2terminal的替代品