您的位置:首页 > 其它

数据流重定向

2016-04-04 15:06 176 查看
1. 数据流重定向(redirect) : 将某个命令执行后应该出现在屏幕上的信息保存到指定的地方.

2. 数据流类别

标准输入(standard input ) stdin : 代码为0, 使用<或<<
标准输出(standard output) stout : 代码为1, 使用>或>> 指的是命令执行所回传的正确的信息.

标准错误输出(standard error output) stderr : 代码为2, 使用2>或2>> 指的是命令执行失败后, 所回传的错误信息.

一般,标准输出和标准错误输出都是默认输出到屏幕上.

3. 实例讲解:

命令: ls > 1.txt

若没有1.txt这个文件,系统将会自动创建;
若存在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 两条数据同时写入一个文件,此时两条数据会交叉写入文件中,造成次序的错乱.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: