输入重定向和输出重定向
1:输入重定向格式及说明
(1):
(i)
cat < 文件地址(<符号左右有空格)
输出重定向:
不用键盘作为标准输入设备,而通过<修改标准输入设备为指定的文件,这就是输入重定向的概念。
命令详解:
cat命令,会接受默认标准输入设备(键盘)的输入,并将其显示到控制台。而通过<修改标准输入设备之后,cat将指定的文件作为了输入设备,将文件中的内容读取并显示在控制台。
针对已存在的文件:
针对目录没有的文件:
(ii)
Cat 文件地址1 < 文件地址2
对于空文件和非空文件(针对文件2)而言
文件1是作为输入设备,显示该文件内容在控制台,但是不改变原本两个文件的文件内容
(2):cat << 一个字符串
表示以默认的键盘为输入设备,读取该字符串前面的内容(不包括该字符串)并显示在控制台。
这下面的两个例子说明控制台显示包括空行
(3):输入输出重定向的同时使用
Cat 文件地址1 > 文件地址2 < 文件地址3
将1的内容输入重定向到2,再输出重定向到文件3,该命令结果不会在控制台输出,
而是将1的内容输出给3,3保存该内容,1的内容也不会因为一次输入重定向和输出重定向有任何改变。
2:输出重定向格式及说明
(1)
输出重定向:
把输出的文件信息写入一个文件,而不是显示在控制台,
这是默认的标准输出设备(控制台)。输出重定向就是指不用Linux默认的标准输出设备显示信息,而指定某一个文件作为输出设备存储信息。
(2)
示例:
(i)
Cat 文件地址
使用控制台显示内容
(ii)
Cat 文件地址1 > 文件地址2
修改默认的输出设备,改文件地址2的文件作为输出设备。(覆盖的方式将文件1的信息输出给文件2并存储)
空文件:
非空文件:(文件2(即例子里面的a4.txt文件内容被覆盖))
(3)
输出重定向的作用:
不输出在终端,而将信息导入文件方便后续查看。
(4)
输出重定向的常用使用方法:
(i)
清空文件或创建新的文件
文件存在且里面有内容,cat > 文件名 进入编辑模式,回车ctrl+d结束命令,覆盖原来内容,新的内容会保存。
文件不存在,结束命令后添加该名称的文件,并且保存刚刚编辑的内容
文件存在且有内容,但是执行命令cat > 文件名后直接回车+CTRL+d,没有编辑任何内容,此时原文件内容全部被清空(可以理解为第一种情况的特例,相当于用空行覆盖原文件内容)
(ii)
追加内容
(iii)
禁止覆盖set -C (注意中间有空格)
禁止覆盖
强制覆盖
(注:这里用了一次set -C,后面始终显示无法覆盖已存在的文件,说明该命令不是短暂性的)
解除禁止(set +C)
(iiii)
合并显示信息并输出
(echo 内容1;echo 内容2)> 文件名
(覆盖写)
(内容可以有多个,不止两个)
3:标准错误输出重定向
(1)
概念:
标准错误输出和标准输出一样,默认都是将信息输出到控制台。
(2)
示例:
(i)只使用>而不加错误输出描述符,是无法成功重定向错误输出的,而只会保持默认状态,将错误信息输出到控制台。
这是一个以b.txt,c.txt作为列表显示并输出的例子,其中c.txt是不存在的文件。
(ii)在>之前加上2(错误输出描述符)后,将错误信息重定向到指定的设备,而标准输出还是默认在控制台输出。
(iii)如果想要使重定向错误输出和重定向标准输出都输出到文件必须要有两个重定向符号>,且在重定向符前加上相应的文件描述符(2或没有数字)
(这里可以比较思考ls -l 和cat命令的标准错误输出重定向的区别)
(3)