Linux文件与目录管理(12)
我们先补一个上一节没讲到的内容,查看文件类型:file
file
查看文件的类型是目录还是二进制文件、还是data文件,还是其他什么文件。
[root@studyclub attribute]# file ~/.bashrc
/root/.bashrc: ASCII text
[root@studyclub attribute]# file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data
[root@studyclub attribute]# file /usr/bin/passwd
/usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=1e5735bf7b317e60bcb907f1989951f6abd50e8d, stripped
ls -li第三列内容详解 - 硬链接个数
详细情况见《Linux磁盘与文件管理》的软硬链接部分
ls -li第四、五列内容简介
这两列是用户和用户组,我们后面《Linux账号管理》部分详细讲解。
ls -li第六列内容详解 - 文件或目录的大小
这一列展示文件或目录的大小,如果不加-h选项或其他选项,ls -l的结果中,如果没有显示大小的单位,则单位是KB。如果ls -lh,这个时候系统会根据文件的大小自动转换单位成KB、MB、GB、TB、PB等。
ls -li第七列内容详解 - 最后修改时间
modification time(mtime):显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变。(也就是Block的内容)
status time (ctime):显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变(即inode内容发生改变和Block内容发生改变时)
access time(atime):显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本)
关于三个时间的实践演示:
[root@studyclub ~]# touch a.txt
[root@studyclub ~]# stat a.txt
File: ‘a.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 33575026 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-02-16 16:17:53.335604757 +0800
Modify: 2021-02-16 16:17:53.335604757 +0800
Change: 2021-02-16 16:17:53.335604757 +0800
Birth: -
[root@studyclub ~]# echo jason > a.txt
[root@studyclub ~]# stat a.txt
File: ‘a.txt’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33575026 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-02-16 16:17:53.335604757 +0800
Modify: 2021-02-16 16:18:11.425604751 +0800
Change: 2021-02-16 16:18:11.425604751 +0800
Birth: -
[root@studyclub ~]# chown jason:jason a.txt
[root@studyclub ~]# stat a.txt
File: ‘a.txt’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33575026 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ jason) Gid: ( 1000/ jason)
Access: 2021-02-16 16:17:53.335604757 +0800
Modify: 2021-02-16 16:18:11.425604751 +0800
Change: 2021-02-16 16:20:06.975604713 +0800
Birth: -
提到了文件修改时间,我们不得不提到一个命令:touch。touch有两个作用:
创建一个空文件 修改文件时间(atime、mtime、ctime)
我们先看创建文件然后查看时间:
[root@studyclub zhuo]# touch tfile
[root@studyclub zhuo]# date
Tue Apr 27 11:07:54 CST 2021
[root@studyclub zhuo]# ll tfile # 可以看到,文件的修改时间(ll默认显示修改时间)就是文件的创建时间
-rw-r--r-- 1 root root 0 Apr 27 11:07 tfile
再来看:
[root@studyclub zhuo]# ls /etc/selinux/config -l
-rw-r--r--. 1 root root 542 Jan 24 17:00 /etc/selinux/config
[root@studyclub zhuo]# cp -a /etc/selinux/config config
[root@studyclub zhuo]# ll config ; ll --time=atime config ; ll --time=ctime config
-rw-r--r--. 1 root root 542 Jan 24 17:00 config # mtime
-rw-r--r--. 1 root root 542 Apr 27 11:06 config # atime
-rw-r--r--. 1 root root 542 Apr 27 11:29 config # ctime
上面的config文件三个时间确定了,我们接下来用touch修改其中一个时间,修改之前我们先来看看touch修改时间的用法。
[root@studyclub ~]# touch [-acm] 文件
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-m :仅修改 mtime ;# mtime是工作中最经常关心的,不要手动修改,因为这关系到文件内容的修改。
接下来,我们看看修改上面提到的config的atime:
[root@studyclub zhuo]# touch -a config
[root@studyclub zhuo]# ll config ; ll --time=atime config ; ll --time=ctime config
-rw-r--r--. 1 root root 542 Jan 24 17:00 config
-rw-r--r--. 1 root root 542 Apr 27 11:44 config
-rw-r--r--. 1 root root 542 Apr 27 11:44 config
我们注意看一下上面的结果,我们修改的atime的时间,为什么ctime的时间也发生了变化呢?
这是因为我们修改的atime是文件的一个属性,ctime就是记录属性发生变化的时间,所以修改atime的时候,ctime也会发生变化。
ls -li第七列内容详解 - 文件/目录名
009 - Linux文件与目录管理(6)
010 - Linux文件与目录管理(7)
011 - Linux文件与目录管理(8)
012 - Linux文件与目录管理(9)
013 - Linux文件与目录管理(10)
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
微信号|bjdream-1
Cloud研习社 ·