# 文件属性
# 相关命令
# stat
$ stat <file>... # 查看指定文件的具体属性
-c %a # 只查看访问权限(用数值表示)
- 例:
[root@CentOS ~]# stat f1 File: ‘f1’ Size: 10240 Blocks: 24 IO Block: 4096 regular file Device: fd00h/64768d Inode: 101970144 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-12-02 17:52:45.722667339 +0800 Modify: 2019-10-10 02:49:00.714000000 +0800 Change: 2019-10-10 02:49:00.714000000 +0800 Birth: -
- 前两行:
- File :文件名。
- Size :文件大小,单位为 bytes 。
- Blocks :该文件在磁盘中存储时,占用的 block 数。通常 block 大小为 4096 bytes 。
- IO Block :文件系统读写该文件时,使用的 IO Block 大小,影响读写速度。它不一定等于存储时的 block 大小。
- regular file :该文件类型为普通文件。
- 第三行:
- Device :该文件所在设备的编号。
- Inode :该文件对应的 inode 的编号。
- Links :指向该 inode 的硬链接数。
- 第四行:
- Access :文件的访问权限。
- User id :文件所有者的用户 id 。
- Group id :文件所有者的用户组 id 。
- 最下方:
- Access time :最后一次访问(只是读取)该文件的时间。
- Modify time :最后一次改变该文件内容的时间。
- Change time :最后一次改变该文件属性的时间。
- 前两行:
# touch
$ touch <file>... # 刷新文件的 Access time 和 Modify time(这会连带修改 Change time ),如果该文件不存在则创建一个空文件
-a # 只设置访问时间
-m # 只设置修改时间
-d [时间字符串] # 设置成指定时间(默认是当前时间)
-r file1 file2 # 将前一个文件的时间属性复制给后一个文件
- 例:
touch f1 # 常用该命令临时创建一个空文件 touch -d "2019-08-05 09:50:00" f1
# file
$ file <file>... # 查看文件的类型
- 例:
[root@CentOS ~]# file / /: directory [root@CentOS ~]# echo hello | file - /dev/stdin: ASCII text [root@CentOS ~]# file /dev/stdin /dev/stdin: symbolic link to `/proc/self/fd/0'
# 隐藏的文件属性
# chattr
$ chattr <file>... # 设置文件的隐藏属性
+a # 使文件已有的内容不能被修改、删除,只能追加内容(常用于日志文件)
-a # 用加号 + 加上某种属性,用减号 - 取消某种属性
+i # 使文件不能被删除、改名、移动、修改内容(常用于严格保护某个文件)
# 如果作用于目录,则不能在该目录下新建或删除文件,只能修改已有文件的内容。
+S # 当文件的内容被修改时,立即同步到磁盘
+s # 当删除该文件时,会用 0 填充其磁盘空间
+u # 当删除该文件时,会保留其磁盘数据
# lsattr
$ lsattr <file>... # 显示文件的隐藏属性
- 如果 Linux 上不存在 chattr、lsattr 命令,则需要安装:
yum install e2fsprogs