文件的高级命令02

文件的高级命令02

文件时间

[root@localhost ~]# echo 111111111 >> /home/qwe/1.txt
# 用输出重定向的方式往 这个新建的文件中写入内容
[root@localhost ~]# stat /home/qwe/1.txt 
# 查看这个文件的创建时间
  文件:"/home/qwe/1.txt"
  大小:10        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:49:04.581538504 +0800
最近更改:2021-06-25 14:49:04.581538504 +0800
最近改动:2021-06-25 14:49:04.581538504 +0800
创建时间:-
[root@localhost ~]# cat /home/qwe/1.txt 
111111111
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:10        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:49:33.619130730 +0800
最近更改:2021-06-25 14:49:04.581538504 +0800
最近改动:2021-06-25 14:49:04.581538504 +0800
创建时间:-
[root@localhost ~]# cat /home/qwe/1.txt 
111111111
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:10        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:49:33.619130730 +0800
最近更改:2021-06-25 14:49:04.581538504 +0800
最近改动:2021-06-25 14:49:04.581538504 +0800
创建时间:-
[root@localhost ~]# 
'''
结论:
   新建一个文件,如果查看这个文件内容改变的是访问时间,其他时间均不变。
   第二次,第三次访问,时间就不会在改变,因为第一次已经把文件从硬盘读到了内存的cache缓存区,第二次读已经没有从硬盘读取文件,因此时间不变。
'''

[root@localhost ~]# echo 111 >> /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:53:59.458061230 +0800
最近更改:2021-06-25 14:53:59.458061230 +0800
最近改动:2021-06-25 14:53:59.458061230 +0800
创建时间:-
[root@localhost ~]# vim /home/qwe/1.txt 
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:8         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17671659    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:54:29.798589297 +0800
最近更改:2021-06-25 14:54:29.798589297 +0800
最近改动:2021-06-25 14:54:29.800593064 +0800
创建时间:-
[root@localhost ~]# rm -rf /home/qwe/1.txt 
[root@localhost ~]# echo 111 >> /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:55:16.386161476 +0800
最近更改:2021-06-25 14:55:16.386161476 +0800
最近改动:2021-06-25 14:55:16.386161476 +0800
创建时间:-
[root@localhost ~]# vim /home/qwe/1.txt 
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:55:30.348406767 +0800
最近更改:2021-06-25 14:55:16.386161476 +0800
最近改动:2021-06-25 14:55:16.386161476 +0800
创建时间:-
[root@localhost ~]# 

'''
结论:
   vim打开并且改内容了,那这个文件的三个时间都会改变。
   vim打开但是没有改文件内容,那这个文件只改变读的时间。
'''

[root@localhost ~]# echo 111 >> /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:58:39.625653223 +0800
最近更改:2021-06-25 14:58:39.625653223 +0800
最近改动:2021-06-25 14:58:39.625653223 +0800
创建时间:-
[root@localhost ~]# chmod 777 /home/qwe/1.txt 
# 修改文件权限
[root@localhost ~]# ll /home/qwe/1.txt 
-rwxrwxrwx 1 root root 4 6月  25 14:58 /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0777/-rwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 14:58:39.625653223 +0800
最近更改:2021-06-25 14:58:39.625653223 +0800
最近改动:2021-06-25 14:59:00.338582264 +0800
创建时间:-
[root@localhost ~]# 

'''
结论:
   文件只单纯的修改权限,值改变最近改动时间,其他时间不变。
'''
[root@localhost ~]# echo 111 >> /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 15:04:49.762123037 +0800
最近更改:2021-06-25 15:04:49.762123037 +0800
最近改动:2021-06-25 15:04:49.762123037 +0800
创建时间:-
[root@localhost ~]# echo 1112222 >> /home/qwe/1.txt
[root@localhost ~]# stat /home/qwe/1.txt 
  文件:"/home/qwe/1.txt"
  大小:12        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17528828    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-25 15:04:49.762123037 +0800
最近更改:2021-06-25 15:05:04.829412143 +0800
最近改动:2021-06-25 15:05:04.829412143 +0800
创建时间:-
[root@localhost ~]# 
'''
结论:
   文件在不通过vim编辑器编辑内容的时候,比如用echo输出定向的时候,那么只改变最近更改和改动时间。
'''

硬链接与软连接

软连接

[root@localhost ~]# mkdir /home/qwe/test1;mkdir /home/qwe/test2
[root@localhost ~]# tree /home/qwe/
/home/qwe/
├── test1
└── test2

2 directories, 0 files
[root@localhost ~]# echo 1111 >> /home/qwe/test1/1.txt
[root@localhost ~]# ln -s /home/qwe/test1/1.txt /home/qwe/test2/2.txt
# 创建软链接 
[root@localhost ~]# cat /home/qwe/test2/2.txt 
1111
[root@localhost ~]# vim /home/qwe/test1/1.txt 
[root@localhost ~]# cat /home/qwe/test1/1.txt 
1111
123323
[root@localhost ~]# cat /home/qwe/test2/2.txt 
1111
123323
[root@localhost ~]# rm -rf /home/qwe/test1/1.txt 
[root@localhost ~]# cat /home/qwe/test
test1/ test2/ 
[root@localhost ~]# cat /home/qwe/test2/2.txt 
cat: /home/qwe/test2/2.txt: 没有那个文件或目录
[root@localhost ~]# ll /home/qwe/test2/2.txt 
lrwxrwxrwx 1 root root 21 6月  25 15:13 /home/qwe/test2/2.txt -> /home/qwe/test1/1.txt
[root@localhost ~]# 

'''
结论:
   1.对软链接源文件或目标文件进行修改,会影响到所有文件名。
   2.软链接文件与源文件有不同的inode号。
   3.删除软链接的源文件,软链接文件将无法使用。
   4.可以对文件创建软链接,并且可以跨分区。
   5.软链接指向的是inode号。
'''

硬链接

[root@localhost ~]# clear
[root@localhost ~]# mkdir /home/qwe/test1;mkdir /home/qwe/test2
[root@localhost ~]# echo 111 >> /home/qwe/test1/1.txt
[root@localhost ~]# ln /home/qwe/test1/1.txt /home/qwe/test2/2.txt
# 创建硬链接
[root@localhost ~]# cat /home/qwe/test2/2.txt 
111
[root@localhost ~]# echo 222 /home/qwe/test1/1.txt 
222 /home/qwe/test1/1.txt
[root@localhost ~]# echo 222 >> /home/qwe/test1/1.txt 
[root@localhost ~]# cat /home/qwe/test2/2.txt 
111
222
[root@localhost ~]# ll /home/qwe/test1/1.txt 
-rw-r--r-- 2 root root 8 6月  25 15:25 /home/qwe/test1/1.txt
[root@localhost ~]# ll /home/qwe/test2/2.txt 
-rw-r--r-- 2 root root 8 6月  25 15:25 /home/qwe/test2/2.txt
[root@localhost ~]# rm -rf /home/qwe/test2/2.txt 
[root@localhost ~]# cat /home/qwe/test1/1.txt 
111
222
'''
结论:
   1.对硬链接内容修改时,会影响到所有文件名。
   2.硬链接文件和源文件具有相同的inode。
   3.删除硬链接或者源文件之一,不会影响到另一个文件的使用,除非所有的都删掉。
   4.不可以对文件创建硬链接,硬链接无法跨区。
   5.硬链接指向的是文件的data lock。
'''

文件系统的工作原理

操作系统---------》文件系统        文件系统          文件系统
硬盘------------》 分区1           分区2            分区3

我们通常所说的c盘其实就是一个c文件夹,也可以说是这个磁盘的c分区。
文件通常由两部分组成:
   1. 文件的元信息,例如(权限,创建者,时间,等)  ----- 存放在inode区块
   2. 文件的世纪内容---------------------------------存放到data block 区块
ps: 每个inode与block都有自己的编号
    文件还有一个超级区块(superblock)会记录整个档案系统的整体信息,包括indoe与block的总量,使用量,剩余量.
    硬盘饿最小存取单位--->扇区
    操作系统的最小存取单位--->block块
    

image

cat /etc/passwd读取过程

image

可用stat查看莫格文件的inode信息。

打开文件分为三步:
   1.系统找到这个文件对应的inode号;
   2.通过inode号获取inode信息。
   3.根据inode信息找到文件数据所在的block,读出数据。
ls -i 可以查看文件的inode号。
posted @ 2021-06-25 15:55  剧终cur  阅读(40)  评论(0)    收藏  举报