linux 文件属性
1. 文件类型
- 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符型设备文件 s socket文件 p 管道类型文件 块设备文件主要是指慢速设备,比如hd硬盘,数据主要是分块存储,所以是块设备;在linux中,设备都会被抽象为一个文件,比如硬盘:
brw-rw---- 1 root disk 8, 0 1月 25 14:53 sda brw-rw---- 1 root disk 8, 1 1月 25 14:53 sda1 brw-rw---- 1 root disk 8, 2 1月 25 14:53 sda2 brw-rw---- 1 root disk 8, 5 1月 25 14:53 sda5 brw-rw----+ 1 root cdrom 11, 0 1月 25 14:53 sr0sda 是指整块硬盘, 我电脑里只有一块硬盘,如果还有第二块硬盘,那么会抽象为sdb
sda1 是指硬盘一个分区
那么既然硬盘是一个文件,那么我可以往该文件里写入内容吗? 肯定是可以的,但是千万别尝试,这样会损坏整块硬盘的数据,不信你试试,我不敢:
cat /etc/passwd > /dev/sda #千万别执行
那在windows中可以用ghost对硬盘做镜像,那在linux中是不需要使用其它工具的,先挂在一块硬盘到/mnt目录
#dd if=/dev/sda of=/mnt/sda.img
只需一条命令即可对整块硬盘做镜像了。如果我只想对其中一个分区做镜像,那if=/dev/sda1就行了。
2. 权限
# ll 总用量 20 drwx------ 2 root root 4096 2月 16 12:41 ./ drwxr-xr-x 23 root root 4096 1月 25 13:53 ../ -rw-r--r-- 1 root root 3106 2月 20 2014 .bashrc -rw-r--r-- 1 root root 140 2月 20 2014 .profile -rw------- 1 root root 626 2月 16 12:41 .viminfo
我们使用ll命名查看文件目录的时候,前面的rwx------这些就是表示文件的权限,那么到底是什么意思呢
对应数字 权限 r 4 读 w 2 写 x 1 执行
第一位有的是d, 有的是- ,这是什么意思呢?
d 表示这是一个目录文件
- 表示这是一个普通文件,还记得最开始说的文件类型吗?
接下来的九个字符则表示该文件或目录的权限了:
前三位: 文件拥有者的权限
中间三位: 文件拥有组的权限
后三位: 其它人的权限
权限 后面的 1 表示链接数, 然后就是拥有者,拥有组,文件大小,修改时间,文件名称
一般情况下,linux文件权限 644 ,文件夹权限 755
3. 权限修改
chmod u+x 文件名 #u表示拥有者 g表示拥有组 o表示其它用户 a表示所有
chomd g-x 文件名
chmod a=rw 文件名 # + ,-, =
chmod 644 文件名 #使用数字方式修改权限,最常用的,最灵活的
如果想给目录及目录下所有文件设置权限,使用-R参数
chomd –R 644 目录
chown 修改拥有者,同样可以加-R参数
chgrp 修改拥有组,同样可以加-R参数
那么问题来了: chmod 046 A 给文件A修改了权限 ,那拥有者对A是什么权限呢?
一看前三位,没有权限 ,那就没有权限 了。权限不会叠加。
4. 连接数
连接数是个什么鬼。这要先从数据在硬盘里怎么存储的说起:
首先目录文件中存储有a.jpg和inode号,再通过inode找到对应的block,就找到了文件内容。图上a.jpg和b.jpg指向的是同一个inode,那a.jpg和b.jpg实际上是同一个文件,只占用一份存储空间,所以连接数就应该是2.
如果a.jpg是个空文件,那它还有inode吗?还占用block吗?
空文件也是有文件信息的,比如权限啊,创建时间啊什么的,这些信息都是存储在inode里的,所以空文件还是有Inode的,但是没有内容,所以不占用block.
那我要是删除了a.jpg,那b.jpg还在吗? 还在的,删除a.jpg实际上是删掉了a.jpg与inode之间的对应关系,但是b.jpg依然可以访问。这就是硬连接, ln a.jpg b.jpg 如果这张图片是美女图片,很好看,不想被别人删除,那就可以做硬连接,在其它地方做一个入口,别人删掉一个,还有其它入口可以访问。但要注意的是硬连接是不能跨分区的。
如果要跨分区,可以使用软连接,软连接是一个全新的文件,相当于windows中的快捷方式。
stat 文件名 可以查看inode里有什么东西