Unix操作系统基础:Unix文件系统之目录
主要内容:
1. Unix文件的概念
2. Unix的目录操作
3. Unix的文件结构
4. Unix的文件操作
一、文件的概念
计算机中的所有信息保存在文件中。
如:通知、程序、文本
文件是:
数据集合
字符流(字节流)
操作系统不对文件进行任何结构化
在Unix系统中,文件是字节的序列
二、文件类型
普通文件:
文本数据或代码数据
没有内部的格式
目录文件:
将所有内容组织成一个表
目录内文件名的列表
特殊文件:
代表系统中的设备,在/dev目录中
三、路径名
由斜杠/分隔的由目录名组成的一个序列。
它指示找到一个文件所必须经历的目录。
两种类型:
绝对路径:由根目录/开始
相对路径:由当前目录开始
举例:
. 表示当前目录
.. 表示上级目录
四、Unix目录及与目录相关的命令
1. 工作目录
在Unix系统中,用户总处于某个目录中,正在工作的这个目录
叫工作目录或当前目录.
显示工作目录的命令:pwd
a. 列出正在工作的目录(Print Working Directory)pwd命令.
b. pwd命令总是返回你当前所处的目录的完整路径名.
c. 登录完成后,显示用户主目录的路径名.
定位工作目录中的文件
定位其他目录中的文件
2. 改变当前目录(change director)
格式:$cd dir_name
作用:从一个目录改变到另一个目录
$cd #命令不带任何参数时,改变到主目录中.
$cd .. #改变到上一级目录上
3. 创建目录
格式:$mkdir dir_name
作用:创建一个子目录,或者一次创建多个子目录
在每个新的子目录中,均包含两个标准的项目:.(点)和..(双点)
$mkdir -m 权限值 dir_name
#创建一个带有特定权限的子目录,必须有权限值.
如:mkdir -m 775 dir_name
注意:
a. 创建的目录应该不存在;
b. 可以在任何一级用mkdir创建而不一定要在当前目录下
4. 删除目录
格式:$rm dir_name
作用:删除一个目录
说明:
a. 参数不能被指定为当前目录,只能在父目录下删除子目录.
b. 被删除的子目录必须为空子目录(即只包含.和..).
c. 如果要删除非空子目录,可使用 -r 选项.
5. 一次操作多个目录
在Unix中,可同时创建多个目录,且可用一个命令删除某个目录及其
所有子目录。
在操作时要使用带 -p 命令选项.
-p 选项:一行命令可以创建一个完整的目录结构。(逐级创建)
注意:
创建的目录不存在。用不着非得创建当前目录的子目录。
只要给出新目录的路径名,就可以在任何一级目录运行该命令。
如:
$mkdir -p dir1/dir2/dir3
$rmdir -p dir1/dir2/dir3
有下列两种情况,rmdir不起作用
a. 待删除的目录不是空目录.
b. 对删除的目录没有写的权限.
6. 显示目录中文件列表(ls)
格式:$ls dir_name(dir_name是可选的)
作用:显示目录列表命令
选项:
-a: 显示所有文件
-R: 显示所有子目录的内容(命令:tree dir_name更合适)
-a: 列出所有文件,包括隐藏文件
-C: 以多列的格式列表,按列排序
-m: 按页宽列文件,以逗号分隔
-p: 如果是目录,文件名后加/
-r: 以字母反序列表
-R: 循环列出子目录的内容
-s: 以文件块为单位显示文件大小(正常以字节为单位)
-x: 以多列的格式列表,按行排序
-F: 如果是目录,文件名后加/,如果是可执行文件,加*表示
-l: 显示目录中文件的详细信息(命令:ll同样效果)
-------------------------------------------------
$ls -l #显示结果说明:total 值表示文件块(block)
-------------------------------------------------
drwxr-xr-x 2 root root 4096 Mar 9 20:54 Desktop
-------------------------------------------------
ab c d e f g h
-------------------------------------------------
a. 文件类型(第一列)
-:普通文件
d:目录
c:字符设备(打印机等)
b:块设备(磁盘等)(块: block)
p:管道
b. 文件保护模式:(-表示不具备这样的权限)
第一组:rwx(文件所有者权限)
第二组:rw-(文件所有者所在组权限)
第三组:r--(其他用户权限)
c. 文件链接数(.和..)
一个是自链接
一个是与父文件的链接
d. 文件属主(所有者)
e. 文件所属用户组
f. 文件大小(字节数)
g. 最后修改时间
h. 文件名
-------------------------------------------------
注意:
如果ls命令列出的文件是设备特殊文件,则该命令的
输出格式略有不同,如:
-------------------------------------------------
brw-r----- 1 root disk 1, 9 Mar 13 20:40 ram9
crw-rw-rw- 1 root root 1, 8 Mar 13 20:41 random
-------------------------------------------------
ab c d e f g h i
-------------------------------------------------
a. 文件类型(第一列)
b. 文件保护模式
c. 文件链接数
d. 文件属主(所有者)
e. 文件所属用户组
f. 主设备号
g. 次设备号
h. 最后修改时间
i. 文件名
-------------------------------------------------
注意:
a. 目录的大小是以512字节为增加的;
b. 名称是存贮在目录之中,其他显示的信息是存储在inode表中.
7. 显示目录条目的信息
使用 -i 命令选项,inode序号将列在第一列
使用 -d 命令选项,将只显示目录条目的信息
可以使用不同的命令选项来显示不同的时间标记
ls -lc 显示更新时间(文件的inode信息被改变的时间)
ls -l 显示更改时间(文件内容被改变的时间)
ls -lu 显示访问时间(文件被读写的时间)