详解Linux重定向

  • Post category:Linux

Linux中的重定向是将命令的标准输入、标准输出、标准出错输出到指定的目的地,起到控制命令流向的作用,提高Linux命令行操作的灵活性和实用性。下面是Linux中几种常用的重定向方法及其使用技巧。

标准输出重定向 >

通过 > 符号可以将命令的标准输出重定向到指定的文件中,如果文件不存在则会创建文件,如果文件已存在会覆盖文件内容。

示例1,将命令 ls 的标准输出重定向到当前目录下的 list.txt 文件中:

ls > list.txt

示例2,将命令 find 的标准输出重定向到 /dev/null 中,即将输出内容丢弃:

find / -name test > /dev/null

标准错误重定向 2>

通过 2> 符号可以将命令的标准错误输出重定向到指定文件中,如果文件不存在则会创建文件,如果文件已存在则会覆盖文件内容。

示例1,将命令 ls 的标准错误输出重定向到当前目录下的 error.log 文件中:

ls /noexist 2> error.log

示例2,将命令 find 的标准错误输出重定向到 /dev/null 中,即将错误输出内容丢弃:

find / -name noexist 2> /dev/null

标准输出和标准错误一起重定向 &>

通过 &> 符号可以将命令的标准输出和标准错误输出一起重定向到指定的文件中,如果文件不存在则会创建文件,如果文件已存在则会覆盖文件内容。

示例1,将命令 ls 的标准输出和标准错误输出一起重定向到当前目录下的 result.txt 文件中:

ls /noexist &> result.txt

示例2,将命令 find 的标准输出和标准错误输出一起重定向到 /dev/null 中,即将输出和错误输出内容丢弃:

find / -name noexist &> /dev/null

标准输入重定向 <

通过 < 符号可以将命令的标准输入从文件中读取而不是从键盘输入。

示例1,从 file.txt 文件中读取输入并传入 sort 命令进行排序:

sort < file.txt

示例2,将 echo 命令的输出作为 input.txt 文件的内容:

echo "hello, world!" > input.txt
cat < input.txt

通过以上的学习,相信您已经能够熟练地掌握常用Linux重定向技巧,并能够以灵活的方式操作命令行。