1. 标准输出重定向 “>”
1)command [arguments] > filename
将command命令的执行结果输出至filename
2)cat > filename
直接在终端输入内容保存至filename中,输入的任何内容只能用ctrl+h(删除字符)和ctrl+u(删除行)来修改内容,输入Enter换行后,此行不再能修改,用ctrl+d结束退出
3)cat filename1 filename2 filenamen > newfile
将filename1 filename2 和filenamen的内容逐个地连接成一个新文件newfile
2. 标准输入重定向 “<”
command [arguments] < filename
将命令的输入重定向到来自指定的文件,eg
cat < filename
等价于cat filename
3. 重定向输出时避免重写文件 noclobber
set -o noclobber
cat filename > newfile
set +o noclobber
首先禁止重定向到已存在的文件,
如果文件已存在,便会提示错误,并且不执行重定向命令,如果文件不存在,则成功重定向
然后关闭 禁止重定向到已存在文件 这一功能。
但建议先查看并备份现有文件,不要依赖noclobber
管道符号 | 会使set -o noclobber 功能失效
$ ls > tmpi.txt
$ set -o noclobber
$ ls > tmpi.txt
-bash: tmpi.txt: cannot overwrite existing file
$ ls >| tmpi.txt
$
4. 追加文件内容 >>
输出重定向会销毁原来文件,shell遇到输出重定向符号>时,首先做的是先删除与目标文件同名的文件。
5. 位垃圾桶 /dev/null
echo "hello" > /dev/null
将不想看到或者不想保存的数据重定向到/dev/null
cat /dev/null > filename
将文件filename的内容清空,保留文件的所有者和权限
6. 双输出 tee
date | tee tmpout.txt
将date命令的输出一份复制到标准输出(例如终端),另一份复制到文件tmpout.txt中
$ date | tee tmpout.txt
Wed May 8 14:35:34 CST 2013
$ cat tmpout.txt
Wed May 8 14:35:34 CST 2013
tee -a 将信息追加到文件中,而不重写文件
$ date | tee -a tmpout.txt
Wed May 8 14:36:44 CST 2013
$ cat tmpout.txt
Wed May 8 14:35:34 CST 2013
Wed May 8 14:36:44 CST 2013