执行ls -al
命令,会看到下面的内容:
localhost:~ jianglei$ ls -al
total 408
drwxr-xr-x+ 50 jianglei staff 1700 5 26 21:54 .
drwxr-xr-x 6 root admin 204 12 19 19:33 ..
-r-------- 1 jianglei staff 9 12 19 19:31 .CFUserTextEncoding
-rw-r--r--@ 1 jianglei staff 18436 5 20 17:22 .DS_Store
drwx------ 17 jianglei staff 578 5 21 20:58 .Trash
-rw-r--r-- 1 jianglei staff 154 12 24 09:22 .appletviewer
-rw------- 1 jianglei staff 5752 5 26 21:38 .bash_history
-rw-r--r-- 1 jianglei staff 370 3 20 21:28 .bash_profile
drwx------ 16 jianglei staff 544 5 26 21:43 .bash_sessions
drwxr-xr-x 9 jianglei staff 306 1 24 07:35 .eclipse
-rw-r--r-- 1 jianglei staff 50 12 27 07:57 .gitconfig
drwxr-xr-x 6 jianglei staff 204 3 24 22:07 .gradle
drwxr-xr-x 3 jianglei staff 102 2 22 19:48 .idlerc
-rw-rw-r-- 1 jianglei staff 233 1 8 22:37 .install4j
drwxr-xr-x 4 jianglei staff 136 1 6 22:37 .m2
每列对应的信息如下(我的是mac版本的,在修改日期处可能有差异)
权限 | 连接 | 所有者 | 用户组 | 文件容量 | 修改日期 | 文件名 |
---|---|---|---|---|---|---|
drwx------ | 9 | jianglei | staff | 578 | 5 21 20:58 | .Trash |
-rw-r--r-- | 1 | jianglei | staff | 370 | 3 20 21:28 | .bash_profile |
第一列代表这个文件的类型与权限
如drwx------
这个地方最需要注意了。仔细看的话,你应该可以发现其中有10个字符
每一个字符代表这个文件是“目录,文件或链接文件等”
- 若是[d]则是目录,
- 若是[-]则是文件,
- 若是[l]则表示为链接文件
- 若是[b]则表示设备文件里面的可供存储的接口设备
- 若是[c]则表示设备文件里面的串行端口,例如键盘、鼠标(一次性读取设备)
接下来的字符中,以3个为一组,且均为“rwx”的3个参数的组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。要注意的是,这3个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。
- 第一组为“文件所有者的权限”
- 第二组为“同用户组的权限”
- 第三组为“其他非本用户组的权限”
问题
若有一个文件的类型与权限数据为“-rwxr-xr–”,请说明其意义
答:-代表该文件是文件类型
rwx代表文件拥有者对该文件具有读写执行的权限
r-x同用户组对该文件具有读 执行的权限,没有写的权限
r--其他用户对该文件肯有读的权限,没有写和执行的权限
第二列表示有多少文件名连接到此节点(i-node)
每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。
第三列表示这个文件(或目录)的“所有者账号”
第四列表示这个文件的所属用户组
第五列表示这个文件的容量大小,默认单位为B
第六列为这个文件的创建日期或者是最近的修改日期
第七列为该文件名
这个字段就是文件名了。比较特殊的是:如果文件名之前多一个”.”,则代表这个文件为“隐藏文件”,例如前面的.gconf那一行,该文件就是隐藏文件。
参考文献
觉大部分参数《鸟哥的私房菜-基础学习篇》