文件重定向——日志文件生成

2018/11/27

我们总会遇到这样的需求,想执行命令后把输出结果保存在一个文件里面,俗称日志文件。接下来有两种方法。个人倾向第一种,比较方便。


>(输出重定向)

  • 在命令后加上>filepath,就是相当于本来要输出到界面上的内容存到filepath这个文件里面,且若文件不存在将会被创建。

  • >:输出重定向到一个文件或设备,相当于删除该文件并重新建立该文件,再写入的效果

    >!:输出重定向到一个文件或设备,强制覆盖原来的文件

    >>:输出重定向到一个文件或设备,追加原来的文件

    2>:将一个标准错误输出重定向到一个文件或设备,覆盖原来的文件

    2>>:将一个标准错误输出重定向到一个文件或设备,追加到原来的文件

    >&:执行时屏幕上所产生的任何信息写入指定的文件中

    >>&:执行时屏幕上所产生的任何信息追加指定的文件中

  • 可以把内容放到/dev/null这个“黑洞”里面,这样屏幕不会有不想要的输出。比如2>/dev/null


script

可以使用script工具记录用户在当前终端的所有的操作,已经输出到屏幕的内容。将这些信息保存到指定的文本文件中。而且可以使用 scriptreplay将其录制的结果播放给他人观看。
在这里插入图片描述
-a 选项 ,在现有输出录制的文件的内容上追加新的内容
-c选项 ,后面可以加上需要执行的命令,而不是交互式shell上执行的命令
-r选项 , 子进程中返回退出代码
-f选项 , 如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示
-q选项 ,可以使script命令以静默模式运行
-t选项,指明输出录制的时间数据
-V选项,输出script的版本信息,然后退出
-h选项,输出script的help信息,然后退出

  • 当file为空时,操作内容将记录到当前目录中名称为typescript的文本文件中,默认会生成。
  • 不为空,导入数据到指定文件里面,不存在则创建。
  • 输入exit可以退出script模式。
  • 理论上,我们用script "filepath" -c "command"就能够替代>,但自己使用时候总是出现结果不如预期,算了还是用第一个吧。

猜你喜欢

转载自blog.csdn.net/BugOverseas/article/details/84567455