Linux:重定向


输出重定向

在Linux中,输出重定向是一种将命令的输出发送到不同位置的方法。通常,执行命令时,输出会显示在终端上。然而,使用输出重定向,可以将输出保存到文件中,或者将输出发送到另一个命令中进行进一步处理。

输出重定向:使用">"符号可以将命令的正常输出重定向到一个文件中。

示例:

ls > file.txt

上述命令ls将当前目录中的文件和文件夹列出,并将结果保存到名为file.txt的文件中。如果file.txt文件已经存在,则会被覆盖

再比如echo可以将字符串写入到屏幕中,我们可以通过输出重定向,将本应输入到屏幕的数据重定向到某个文件中:

echo "Hello Linux" > file.txt

同样的,如果file.txt文件已经存在,则会被覆盖,如果不存在,那么会创建一个同名文件

所以我们可以通过输出重定向创建文件:

> file.txt

在输出重定向左侧,没有任何内容,即代表不写入任何内容。重定向到file.txt,此时就会创建一个file.txt空文件。

输出重定向是Linux中一个非常强大的功能,可以让我们更好地管理和处理命令的输出结果。无论是保存输出到文件,还是将输出作为另一个命令的输入,输出重定向都可以帮助我们更高效地使用Linux系统。


追加重定向

相比于输出重定向,追加重定向是将输出内容添加到指定文件的末尾,而不是覆盖文件原有内容。

追加重定向使用符号" >> "来实现。以下是一些案例来说明追加重定向的使用:

  1. 将命令的输出追加到文件中:

    假设我们有一个命令"date",该命令可以显示系统的当前日期和时间。我们可以使用追加重定向将输出内容追加到一个文件中,而不是在屏幕上显示。

    示例:
    date >> log.txt

    这个命令会将日期和时间追加到名为log.txt的文件中。如果log.txt文件不存在,则会创建一个新文件。

  2. 将多个命令的输出追加到同一个文件中:

    如果要将多个命令的输出都追加到同一个文件中,可以使用追加重定向符号" >> "。

    示例:
    command1 >> output.txt; command2 >> output.txt

    这个命令会将command1command2的输出都追加到名为output.txt的文件中。每个命令后使用分号;来分隔

追加重定向也可以与管道一起使用,来对命令的输出进行处理和追加。例如:command1 | command2 >> output.txt,这个命令会将command1的输出通过管道传递给command2进行处理,并将处理后的结果追加到output.txt文件中。


输出重定向与追加重定向的本质

输出重定向与追加重定向都是进行向文件写入的功能,想要写入,那就需要先打开文件。
在C语言中,用fopen函数打开文件,而fopen有一个参数,决定以什么形式打开:
在这里插入图片描述
其中以r打开,就是只读;以w打开,则会覆盖以前的文件内容;以a打开,则会在文件末尾追加。
另外,wa形式打开文件,如果文件不存在,都会重新创建一个同名文件

所以输出重定向的本质是以w形式打开文件,追加重定向的本质是以a形式打开文件


输入重定向

在Linux中,输入重定向是一种将命令的输入从键盘转向另一个来源的方法。它允许将数据从文件、命令或其他命令的输出作为命令的输入。

输入重定向使用符号“<”来指示将输入从其他源重定向到命令。

当cat命令不接任何文件,此时其默认会把读取对象作为键盘,键盘输入什么,它就输出什么。

而我们可以使用输入重定向,将cat指令的数据来源定向到某个文件。

使用文件作为输入:假设有一个名为input.txt的文件,其中包含一些数据。可以使用输入重定向将此文件作为命令的输入。

cat < input.txt
Hello Linux

此处cat接收到了input.txt内部的字符串,并将其输出。


相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 16:18:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 16:18:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 16:18:07       82 阅读
  4. Python语言-面向对象

    2024-02-02 16:18:07       91 阅读

热门阅读

  1. Linux 内核版本和发布历史

    2024-02-02 16:18:07       50 阅读
  2. 银行业基本术语

    2024-02-02 16:18:07       46 阅读
  3. Ubuntu重装kubernetes集群

    2024-02-02 16:18:07       54 阅读
  4. Springboot RequestMapping可以查询数据但地址返回404

    2024-02-02 16:18:07       30 阅读
  5. 【PyRestTest】进行Benchmarking测试

    2024-02-02 16:18:07       46 阅读
  6. 深度探讨ThreadLocal是否真的可能引发内存泄漏

    2024-02-02 16:18:07       54 阅读
  7. 寒假每日练习——搜索

    2024-02-02 16:18:07       47 阅读
  8. LeetCode解法汇总2670. 找出不同元素数目差数组

    2024-02-02 16:18:07       58 阅读
  9. 浅谈 Unix Timestamp 时间戳

    2024-02-02 16:18:07       45 阅读
  10. ORA-65096: 公用用户名或角色名无效

    2024-02-02 16:18:07       46 阅读