OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

但是,由于 Linux 是一个灵活的系统,因此不一定必须应用这些默认设置。 例如,在大型环境中受到严密监控的服务器上的标准输出可能是打印机。


图片

5.1.2. 重定向操作符


5.1.2.1. 使用 > 和 | 进行输出重定向


有时您希望将命令的输出放在一个文件中,或者您可能希望在一个命令的输出上发出另一个命令。 这称为重定向输出。 使用“>”(大于号)或“|”完成重定向(管道)运算符,它将一个命令的标准输出作为标准输入发送到另一个命令。


正如我们之前看到的, 命令连接文件并将它们放在一起到标准输出。 通过将此输出重定向到文件,将创建此文件名 - 如果已存在,则将其覆盖,因此请注意。


南希:~> 猫测试1

一些单词


南希:~> 猫测试2

其他一些词


南希:~> 猫 test1 test2 > test3


南希:~> 猫测试3

一些单词

南希:~> 猫测试1

一些单词


南希:~> 猫测试2

其他一些词


南希:~> 猫 test1 test2 > test3


南希:~> 猫测试3

一些单词


一些 other


图片不要覆盖!

重定向输出时注意不要覆盖现有(重要)文件。 许多 shell,包括 Bash,都有一个内置功能来保护您免受这种风险: 无声无息. 有关更多信息,请参阅信息页面。 在 Bash 中,您需要添加 -o 无声无息 命令你 的.bashrc 配置文件,以防止意外覆盖文件。

将“无”重定向到现有文件等于清空文件:


南希:~> ls -l 列表

-rw-rw-r-- 1 南希


南希


117 Apr 2 18:09 名单

南希:~> >清单

南希:~> ls -l 列表

-rw-rw-r-- 1 南希


南希


0 Apr 4 12:01 名单

这个过程叫做 截断.


图片

对不存在文件的相同重定向将创建一个具有给定名称的新空文件:


南希:~> ls -l 新列表

ls: newlist: 没有那个文件或目录


南希:~> > 新名单

南希:~> ls -l 新列表

ls: newlist: 没有那个文件或目录


南希:~> > 新名单


南希:~> ls -l 新列表

-rw-rw-r-- 1 南希南希

0 月 4 日 12:05 新名单

南希:~> ls -l 新列表

-rw-rw-r-- 1 南希南希

第 7 章给出了更多关于使用这种重定向的例子。 使用命令管道的一些示例:

要在某些文本中查找单词,请显示与“pattern1”匹配的所有行,并从显示中排除也与“pattern2”匹配的行:


grep的 pattern1 文件 | grep的 -v pattern2


显示一个目录的输出,一次列出一页:


ls - | 较少的


要在目录中查找文件:


ls -l | grep的 部分文件名


图片

5.1.2.2. 输入重定向


在另一种情况下,您可能希望将文件作为通常不接受文件作为选项的命令的输入。 这种输入重定向是使用“<”(小于号)运算符完成的。


下面是使用输入重定向将文件发送给某人的示例。


安迪:~> 邮件 [电子邮件保护] < 去做


如果用户 麦克风 存在于系统中,您无需键入完整地址。 如果您想联系 Internet 上的某个人,请输入完全限定的地址作为参数 邮件.


这比初学者的猫读起来难一些 文件 | 邮件 有人,但这当然是使用可用工具的一种更优雅的方式。


图片

5.1.2.3. 组合重定向


以下示例结合了输入和输出重定向。 文件 文本文件 首先检查拼写错误,并将输出重定向到错误日志文件:


拼写 文本文件 > error.log中


以下命令列出了在使用时可以发出以检查另一个文件的所有命令 :


迈克:~> 少 --help | grep -i 检查

:e [file] 检查一个新文件。

:n * 从命令行检查(第 N 个)下一个文件。

:p * 从命令行检查 (N-th) 前一个文件。

:x * 从命令行检查第一个(或第 N 个)文件。

迈克:~> 少 --help | grep -i 检查

:e [file] 检查一个新文件。

:n * 从命令行检查(第 N 个)下一个文件。

:p * 从命令行检查 (N-th) 前一个文件。

:x * 从命令行检查第一个(或第 N 个)文件。

-i 选项用于不区分大小写的搜索 - 请记住 UNIX 系统非常区分大小写。 如果要保存此命令的输出以供将来参考,请将输出重定向到文件:

迈克:~> 少 --help | grep -i检查>检查文件少


迈克:~> 猫检查文件少

:e [file] 检查一个新文件。

:n * 从命令行检查(第 N 个)下一个文件。

:p * 从命令行检查 (N-th) 前一个文件。

:x * 从命令行检查第一个(或第 N 个)文件。

迈克:~> 少 --help | grep -i检查>检查文件少


迈克:~> 猫检查文件少

:e [file] 检查一个新文件。

:n * 从命令行检查(第 N 个)下一个文件。

:p * 从命令行检查 (N-th) 前一个文件。

:x * 从命令行检查第一个(或第 N 个)文件。

一个命令的输出实际上可以根据需要多次通过管道传输到另一个命令中,只要这些命令通常从标准输入读取输入并将输出写入标准输出即可。

有时它们不会,但可能会有特殊选项指示这些命令按照标准定义运行; 因此,如果遇到错误,请阅读您使用的命令的文档(手册和信息页面)。


再次确保您不使用仍然需要的现有文件的名称。 将输出重定向到现有文件将替换这些文件的内容。


图片

5.1.2.4. >> 运算符


除了覆盖文件数据,您还可以使用两个后续的大于号将文本附加到现有文件中:


示例:


迈克:~> 猫心愿单

更多的钱更少的工作


迈克:~> 日期 >> 愿望清单

迈克:~> 猫心愿单

更多的钱更少的工作


迈克:~> 日期 >> 愿望清单


迈克:~> 猫心愿单

更多的钱更少的工作

欧洲中部时间 28 年 20 月 23 日星期四 07:2002:XNUMX

迈克:~> 猫心愿单

OnWorks 的顶级操作系统云计算: