7.1 shell重定向
shell重定向操作符:改变命令获取输入和发送输出的地方
- 命令输出保存到文件中
- 使文件作为命令的输入
输出重定向
command > filename 覆盖重定向
command >> filename 追加重定向(将命令执行结果放在文件已有内容的后面)
输入重定向
command < filename 命令行中使用
command << filename 脚本编程使用
cat命令
摁Ctrl+d退出cat命令
$ cat filename
显示文件内容
$ cat < filename
将filename文件作为输入并显示内容
$ cat -n filename
显示文件行号
$ cat > filename
覆盖式创建文件,输入的全进入文件,Ctrl+d退出
$ cat >> filename
文本追加输入,Ctrl+d退出
$ cat filename > filename.copy
使用cat命令和输出重定向可以复制文件,也可以实现多个文件内容合并到一个文件
7.2 文件操作命令
- cp命令:复制文件
$ cp 文件名1 文件名2
创建文件副本
$ cp 文件名1 目录名2
将文件复制到其他目录
$ cp 文件名1 文件名2 …… 目录名
将多个文件复制到其它目录
$ cp -b 文件名1 目录名2
如果指定的文件已经存在,则创建它的备份(如果不加-b则会覆盖)
REPORT~中的内容和其他两个不一样
$ cp -i 文件名1 目录名2
将文件复制到其他目录,-i,如果目标文件已经存在,要求确认,y覆盖,n不覆盖
$ cp -r 目录名1 目录名2
将目录复制到其他目录(适用于文件夹的移动)
- mv命令:移动文件,将文件从一个地方移动到另一个地方
$ mv 文件名 目录
将文件移动到其他目录(非文件所在目录)
$ mv 文件名1/目录1 文件名2/目录2
改变文件名/目录名
$ mv 文件名1 文件名2 …… 目录名
将文件批量移动到其它目录
-b同上一个命令
$ mv -i 文件名1 目录名2
将文件移动到其他目录,-i是命令选项,表示“如果目标文件已经存在,要求确认”
$ mv -v 文件名 目录名
解释操作
$ mv -f 文件名 目录名
如果目标文件存在,则覆盖它 - ln文件:链接文件,在已存在文件和新文件名之间创建链接,改变任一链接文件内容,文件内容发生改变
$ ln 已有文件名 链接文件名
$ mv 文件名1 文件名2 …… 目录名
在目录中创建链接文件
本节所讲知识为硬链接,不涉及符号链接(软链接) - wc命令:字数计算,计算一个或多个文件的行数,字数和字符数
$ wc filename
对应的显示结果为:行数 字数 字符数,如果无参数则默认从键盘输入
$ wc -l filename
只统计行数
$ wc -c filename
只统计字符数
$ wc -w filename
只统计字数
7.3 文件名替换
常用通配符:
?匹配任意单个字符
“*” 匹配任意字符串,包括空串
$ls r*2
显示出以r为开头,以2为结尾的文件
[list] 匹配任一在list中的字符,list中可以为区间,字母区间或者数字区间,用-连接
$ ls *[1-3]
显示以1-3为结尾的文件
[!list] 匹配任一不在list中的字符
使用通配符显示隐藏文件,必须将.作为指定模式的一部分
$ ls .*
显示隐藏文件
7.4 其他文件操作命令
- find命令:查找命令
在层次目录中根据文件名或文件属性定位文件,并可以对定位的文件进行删除、打印或者其他操作
$ fine 路径名 搜索选项 动作选项
$ find ./ -name filea print
在当前目录及当前目录的所有子目录中查找名为filea的文件并打印
find -name加使用通配符的文件名时,要用引号括起文件名
比如$ find . -name "*.c" print
搜索选项-size ±n中,+表示大于;-表示小于,n后可后缀【c(字节)w(字)b(块)kMG】表示单位,默认单位为块。
$ find -type file type
查找命令
$ find $HOME -type f -print
在当前用户主目录查找所有普通文件f为普通文件
此处的1也可以是1,2表示取前两个域
空格:向下翻一页
回车:向下翻一行
q Q:退出more命令
7.5 UNIX的内部:文件系统
mv命令对文件移动和改名、ln链接操作对文件i节点号没有影响,链接文件和原文件i节点号相同