如何将Linux/Unix命令的输出保存到文件中
时间:2020-01-09 10:40:39 来源:igfitidea点击:
如何使用命令提示符或POSIX shell(例如SH/KSH/BASH)将Linux/Unixls
命令的输出保存到名为list.txt的文件中? Bash/KSH和POSIX Shell提供了文件重定向选项,该命令使用以下两个运算符将命令输出重定向到文件:
- ">"是输出重定向符号。
- " >>"是追加输出重定向符号。
将命令输出保存到文件的语法
语法为:
命令>文件名
示例:将date命令输出保存到名为output.txt的文件中
在此示例中,将date命令的输出保存到名为output.txt的文件中:
$ date > output.txt
示例:运行Unix/Linux命令并将输出保存到文件
请注意,如果file-lists.txt文件不存在,则会创建该文件。
并且如果文件file-lists.txt文件退出则被覆盖。
可以将command
替换为要在Linux/Unix上运行的命令,并将filename
替换为要将输出保存(定向)到的文件。
例如,运行ls命令并将其输出存储在名为file-lists.txt的文件中:
ls -l /bin > file-lists.txt
要查看file-list.txt的内容,请使用cat命令,如下所示:
cat file-lists.txt
或出于相同目的使用如下的NA命令:
more file-lists.txt
示例:grep文本并保存到文件
您可以使用grep命令扫描日志文件并将其保存到文件。
在此示例中,我将搜索/扫描名为/var/log/httpd/access_log的日志文件以查找垃圾邮件发送者IP地址1.2.3.4,并将其保存到名为spam-log.txt的文件中:
# command must be run as root # grep '1.2.3.4' /var/log/httpd/access_log > /root/spam-log.txt
如果您的日志文件太大,请在后台用&号(&)运行作业(grep命令),如下所示:
# command must be run as root # grep '1.2.3.4' /var/log/httpd/access_log > /root/spam-log.txt &
保存命令输出并将其追加到文件的语法
">"运算符始终会覆盖现有的输出文件。
要将命令的输出追加到同一文件,请使用>>
运算符,如下所示:command >> filename'在此示例中,运行两个名为
date和
who`的命令,并将输出保存到同一文件中,称为demo。
文本:
echo "Test" > demo.txt ## Append to same file ## echo "A log file by $USER on $HOSTNAME" >> demo.txt who >> demo.txt cat demo.txt
重定向标准错误并将其输出到文件的语法
用于重定向标准错误以及在bash/ksh或POSIX shell上输出的基本语法如下:
command-name &>filename ## POSIX syntax ## command-name >cmd.log 2>&1