第六章(unix文件系统高级操作)
shell重定向
命令执行:从标准输入设备获得输入发送输出到标准输出设备
shell重定向操作符:改变命令获取输入和发送输出
的地方
shell重定向操作符可以完成的任务
●命令输出保存到文件中
●使文件作为命令的输入
输出重定向
输出重定向允许用户将命令(进程)的输出保存到文件中
shell使用>和> >做为输出重定向操作符
命令格式
覆盖重定向
command >filename
追加重定向
command >> filename
输入重定向
输入重定向允许用户从指定文件得到输入来运行命令
shell使用<和< <做为输出重定向操作符
命令格式
覆盖重定向
command <filename
追加重定向
command << filename
回顾cat命令
cat显示文件内容
命令参数
cat myfirst
输入重定向
cat < myfirst
$ cat filea
This is filea
$ cat < filea
This is filea
选项-n,显示文件行号
cat -n filename
使用cat命令和输出重定向可以创建文件
(覆盖式创造文件)
cat > filename
文本追加输入
cat >> filename
使用cat命令和输出重定向可以复制文件
cat filename > filename.copy
文件操作命令
创建目录 mkdir
创建文件 vi和cat
删除文件和目录 rm和rmdir
复制文件:cp命令
创建文件副本
cp 文件名1 文件名2
将文件复制到其它目录
cp 文件名 目录名
将文件批量复制到其它目录
cp 文件名1 文件名2 ... 目录名
cp命令选项 -i
如果目标文件已经存在,要求确认
cp命令选项 -r
将目录复制到新的目录
移动文件:mv命令
mv(move)命令将文件从一一个地方移动到另一个地方
使用mv命令的几种情况
将文件移到其它目录(非文件所在目录)
mv 文件名 目录
改变文件名/目录名
mv 文件名1/目录名1 文件名2/目录名2
将文件批量移动到其它目录
mv 文件名1 文件名2 ... 目录名
mv命令选项 -i
如果目标文件已经存在,要求确认
链接文件: In命令
In命令在已存在文件和新文件名之间创建链接
为已存在文件起新名字,使用不同名字引用相同文件
应用场景
■在不同目录中频繁操作同一文件
■在每个目录中建立该文件的链接文件,通过链接文件对原文件进行操作
■链接文件不占用过多的磁盘空间
链接文件与复制所得文件的区别
复制文件 | 链接文件 |
---|---|
■创建新文件;新文件与原文件是两个独立文件 | ■未创建新文件;为同一个文件另外起了一个名字 |
■对一个文件的修改不会影响另一个 | ■改变任一 链接文件内容, 文件内容发生改变 |
创建链接文件
In 已有文件名 链接文件名
在目录中创建链接文件
In 文件名1 文件名2 ... 目录
查看文件链接数
字数计算: wc命令
wc命令计算一个或多 个文件的行数、字数和字符数
wc [文件名]
选项 | |
---|---|
-l | 统计行数 |
-c | 统计字符数 |
-w | 统计字数 |
文件名替换
文件操作命令的参数大多为文件
shell提供文件名替换操作,允许用户使用匹配指定模式的文件名
指定模式
需要在文件名中包含特定字符(通配符来创建
字符 | 功能 |
---|---|
? | 匹配任意单个字符 |
* | 匹配任意字符串,包括空串 |
[list] | 匹配任在list 中的字符 |
[!list] | 匹配任和list 中的字符 |
?通配符
shell将?解释为单个字符,并相应扩展文件名
通配符
*
shell将*解释为文件名中的任意个字符(包括0个)
[]通配符
shell将[ ]解释为包含括号中指定的字符
通配符和隐藏文件
使用通配符显示隐藏文件,必须将.作为指定模式一部分
通配符在其他需要文件名参数的命令中的使用
其它文件操作命令
在多层目录中搜索指定文件,快速查看文件指定部分
查找文件: find命令
在层次目录中根据文件名或文件属性定位文件
并可以对定位的文件进行删除、打印或其他操作
命令格式
find 路径名 搜索选项 动作选项
find命令的选项
搜索选项
选项 | 功能 |
---|---|
-name | 根据文件名查找文件 |
-size±n | 根据文件大小查找文件 |
-type | 根据文件类型查找文件被读取或执行 |
-atime±n | 根据最后访问日期查找文件(被读取或执行) |
-mtime±n | 根据最后修改日期查找文件(内容被修改) |
-newer | 查找更新的文件 |
动作选项
显示文件的头部: head命令
显示文件头部若干行
命令格式
head 文件名
选项 -n 显示文件前n行
显示文件的尾部: tail命令
显示文件尾部若干行
命令格式
tail 文件名
选项 -n 显示文件后n行
选择文件的一部分: cut命令
从文件中“取出”指定的域或列
命令格式
cut 选项 文件名
cut命令选项
从文件中“取出”指定的域 :-f选项
后面跟指定域列表(域默认分隔符是制表符)
从文件中"取出”指定的字符:-c选项
后面跟指定字符位置
-d选项 后面跟非默认域分隔符, 与-f连用
空格或其他有意义字符必须用双括号括起来
连接文件:paste命令
逐行连接两个或多个文件
paste 文件名1..文件名n
选项: -d 指定具体分隔符,默认为制表符
另页查看工具: more命令
命令格式
more 文件名
more命令选项
Linux页查看工具: less命令
分页查看文件,允许在文件中向后和向前移动
less 文件名
基于more和vi,更高级工具
UNIX的内部:文件系统