1. 数据流重定向(redirect) : 将某个命令执行后应该出现在屏幕上的信息保存到指定的地方.
2. 数据流类别
一般,标准输出和标准错误输出都是默认输出到屏幕上.
3. 实例讲解:
命令: ls > 1.txt
命令: ls >> 1.txt
与上面的区别是不会覆盖1.txt原本存储的内容,会将新信息写入到文件原有信息的后面.
命令: ls 1> out.txt 2> error.txt
将ls的输出正确信息写入到out.txt , 错误信息写入到error.txt .注意2>中间没有空格.
命令: cat > catfile 产生名叫catfile的文件,并紧接着在屏幕上输入文件存储内容;
命令: cat > catfile < 1.txt
"<"将原本由键盘输入的数据改由文件内容来替代.
命令: ls -al catfile 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:13 1.txt
-rw-rw-r-- 1 jcc jcc 224 4月 4 15:33 catfile
查看catfile和1.txt的文件信息, 发现这2个文件大小一模一样,和cp复制效果一样.
注意: "<<" 代表的是结束的意思;
命令: cat > catfile << "eof"
> djh
> kdf
> eof
当键盘输入eof时,系统自动终止文件内容的写入, "eof"并不会写入文件中.而不需要使用ctrl+d来强制退出.
4. 特殊用法
(1)/dev/null 垃圾桶黑洞设备
已经知道错误信息会产生,想要将此错误信息忽略掉而不显示或存储, 可以使用以下用法: ls 1> out.txt 2> /dev/null . 这个/dev/null将会吃掉所有导向这个设备的信息;
(2) 将正确的输出信息和错误的输出信息输入到一个文件中
命令1: ls 1> out.txt 2>&1 (常用)
命令2: ls &> output.txt
错误: ls 1> out.txt 2> out.txt 两条数据同时写入一个文件,此时两条数据会交叉写入文件中,造成次序的错乱.