三、文件与目录管理
3.1 常见的目录处理命令
语法: mkdir [选项] 目录名称
示例: mkdir /usr/local/myfile
选项: -P 创建多层目录,比如mkdir -P /a/b/c,在a目录下创建b目录,再在b目录下创建c目录。
(4)rmdir -- 删除一个空的目录
语法: rmdir 目录名称
示例: rmdir /usr/local/myfile
注意:删除非空目录,使用 rm -r 目录名称
(5)cp -- copy 复制
语法: cp [选项] 源文件 目标文件
选项:
-d 若源文件为链接文件,则复制链接文件而非文件本身。
-f 强制复制。(若目标文件存在,则删除后再尝试一次)。
-i 若目标文件存在,则覆盖时先确认。
-l 建立硬链接,而非复制文件本身。
-p 连同文件的属性(比如权限、修改日期等)一起复制,而非使用默认属性。
-r 递归持续复制,应用于目录的复制。
-s 复制为软链接。
-u 若目标文件比源文件旧,才复制更新。
(6)rm -- remove 删除
语法: rm [选项] 文件
选项:
-f 强制删除(忽略不存在的文件,不会出现警告信息)。
-i 互动模式(删除前会询问使用者)。
-r 递归删除(连同子目录/文件一并删除)。
(7)mv -- move 移动
语法: mv [选项] 文件
选项:
-f 强制移动(若目标文件已存在,则不会询问而直接覆盖)。
-i 若目标文件存在,则询问是否覆盖。
-u 若目标文件存在,而且源文件比较新,才会更新。
3.2 文件内容查阅
3.2.1 直接查看文件内容
(1) cat -- concatenate 将文件内容连续地打印出来。
由第一行开始显示文档内容
(1) more 一页一页地显示文件内容
(1) head 只看头几行
(1) od 以二进制的方式读取文件内容
3.3 修改文件时间和建立新文件
touch
-- 修改文件的时间属性或建立新文件,如mtime(modification time,文件内容更新时间)、ctime(status time,文件状态更新时间,如权限或属性被更改)、atime(access time,文件内容被读取时间。)
语法: touch [选项] 文件
3.4 文件权限预设:umask
umask设置的值指的是“该默认值需要减掉的权限”。
比如设置为 0022,则表示要设置的权限为 7755。(第一位是特殊权限,后三位为用户/群组/其它的权限)。
3.5 文件搜索及文件类型查看
(1)which -- 寻找执行文件
语法: which 命令文件
语法格式: find [搜索路径] [搜索关键字] [文件或目录]
3.6 权限与指令的关系
(1)使某目录成为用户的“可工作目录”
目录所需权限:用户对所在目录至少需要需要有x权限。如果要在目录内执行ls命令,则需要对目录拥有r权限。
(2)用户读取某个文件的权限(比如cat、more、less操作)
目录所需权限:用户对所在目录最少有x权限; 文件所需权限:用户对该文件至少有r权限。
(3)用户修改某个文件的权限(比如vi操作)
目录所需权限:用户对所在目录最少有x权限; 文件所需权限:用户对该文件最少有r和w权限。
(4)用户建立新文件的权限
目录所需权限:用户对所在目录最少有w和x权限。
(5)用户进入某目录并执行该目录下某个指令的权限
目录所需权限:用户对所在目录需要有x权限;文件所需权限:用户对该文件需要有x权限。
3.1 常见的目录处理命令
(1)cd -- Change Directory 切换目录
(2)pwd -- Pring Working Directory 显示当前目录
(3)mkdir -- make directory 建立一个新的目录语法: mkdir [选项] 目录名称
示例: mkdir /usr/local/myfile
选项: -P 创建多层目录,比如mkdir -P /a/b/c,在a目录下创建b目录,再在b目录下创建c目录。
(4)rmdir -- 删除一个空的目录
语法: rmdir 目录名称
示例: rmdir /usr/local/myfile
注意:删除非空目录,使用 rm -r 目录名称
(5)cp -- copy 复制
语法: cp [选项] 源文件 目标文件
选项:
-d 若源文件为链接文件,则复制链接文件而非文件本身。
-f 强制复制。(若目标文件存在,则删除后再尝试一次)。
-i 若目标文件存在,则覆盖时先确认。
-l 建立硬链接,而非复制文件本身。
-p 连同文件的属性(比如权限、修改日期等)一起复制,而非使用默认属性。
-r 递归持续复制,应用于目录的复制。
-s 复制为软链接。
-u 若目标文件比源文件旧,才复制更新。
(6)rm -- remove 删除
语法: rm [选项] 文件
选项:
-f 强制删除(忽略不存在的文件,不会出现警告信息)。
-i 互动模式(删除前会询问使用者)。
-r 递归删除(连同子目录/文件一并删除)。
(7)mv -- move 移动
语法: mv [选项] 文件
选项:
-f 强制移动(若目标文件已存在,则不会询问而直接覆盖)。
-i 若目标文件存在,则询问是否覆盖。
-u 若目标文件存在,而且源文件比较新,才会更新。
3.2 文件内容查阅
3.2.1 直接查看文件内容
(1) cat -- concatenate 将文件内容连续地打印出来。
由第一行开始显示文档内容
(2)tac 由最后一行开始显示文档内容,跟cat是倒过来写的。
(3)nl 显示的时候,顺道输出行号。
3.2.2 翻页查看文件内容(1) more 一页一页地显示文件内容
(2)less 与more类型,支持往前翻页
3.2.2 选择性查看文件内容(1) head 只看头几行
(2)tail 只看尾几行
3.2.3 查看非纯文本文件(1) od 以二进制的方式读取文件内容
3.3 修改文件时间和建立新文件
touch
-- 修改文件的时间属性或建立新文件,如mtime(modification time,文件内容更新时间)、ctime(status time,文件状态更新时间,如权限或属性被更改)、atime(access time,文件内容被读取时间。)
语法: touch [选项] 文件
3.4 文件权限预设:umask
umask设置的值指的是“该默认值需要减掉的权限”。
比如设置为 0022,则表示要设置的权限为 7755。(第一位是特殊权限,后三位为用户/群组/其它的权限)。
3.5 文件搜索及文件类型查看
(1)which -- 寻找执行文件
语法: which 命令文件
示例: which ifconfig, 执行结果为 /sbin/ifconfig
(2)whereis -- 寻找指定文件语法: whereis 文件名
(3)locate -- 支持模糊搜索locate寻找的数据是由“已建立的数据库/var/lib/mlocate/”里边的数据搜索到的,不用直接去搜索硬盘,该数据库默认一天只更新一次,所以当新建的文件还在数据库更新之前,则locate寻找不到该文件,可以执行updatedb来更新数据库(更新时间需要花费几分钟)
(4)find -- 查找文件或目录,相当于搜索。语法格式: find [搜索路径] [搜索关键字] [文件或目录]
如 find /usr/ -name f*,查找usr目录下名称以f开头的文件。
(5)file 观察文件类型
3.6 权限与指令的关系
(1)使某目录成为用户的“可工作目录”
目录所需权限:用户对所在目录至少需要需要有x权限。如果要在目录内执行ls命令,则需要对目录拥有r权限。
(2)用户读取某个文件的权限(比如cat、more、less操作)
目录所需权限:用户对所在目录最少有x权限; 文件所需权限:用户对该文件至少有r权限。
(3)用户修改某个文件的权限(比如vi操作)
目录所需权限:用户对所在目录最少有x权限; 文件所需权限:用户对该文件最少有r和w权限。
(4)用户建立新文件的权限
目录所需权限:用户对所在目录最少有w和x权限。
(5)用户进入某目录并执行该目录下某个指令的权限
目录所需权限:用户对所在目录需要有x权限;文件所需权限:用户对该文件需要有x权限。