Linux:重定向

简介: 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内部的字符串,并将其输出。


相关文章
|
4月前
|
Unix Linux C语言
Linux重定向:深入理解与实践
Linux重定向:深入理解与实践
|
4月前
|
Linux
Linux dup函数文件重定向
dup函数创建一个新的文件描述符,该新文件描述符和原有文件描述符file_descriptor指向相同的文件、管道或者网络连接。并且dup返回的文件描述符总是取系统当前可用的最小整数值。dup2和dup类似,不过它将返回第一个不小于file_descriptor_two的整数值。dup和dup2系统调用失败时返回-1并设置errno。有时我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接(比如CGI编程)。
19 0
|
5月前
|
Linux Shell PHP
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
linux(十五)文件和目录相关命令-控制台输出命令echo和重定向
53 0
|
6月前
|
弹性计算 运维 Shell
Linux加强篇003-管道符、重定向与环境变量
山重水复疑无路,柳暗花明又一村
252 1
|
7月前
|
Unix Shell Linux
|
3天前
|
Linux
【Linux】Linux的管道与重定向
【Linux】Linux的管道与重定向
|
7天前
|
Linux 程序员 C语言
【linux基础I/O(一)】文件描述符的本质&重定向的本质
【linux基础I/O(一)】文件描述符的本质&重定向的本质
|
存储 Shell Linux
Linux--文件(2)-重定向和文件缓冲
Linux--文件(2)-重定向和文件缓冲
|
3月前
|
Linux C++
认识Linux指令之 “ 重定向” 符号
认识Linux指令之 “ 重定向” 符号
认识Linux指令之 “ 重定向” 符号
|
3月前
|
Unix Shell Linux
在Unix/Linux Shell中,管道(`|`)和重定向
在Unix/Linux Shell中,管道(`|`)和重定向
23 1