区别>和>>在创建日志文件时

时间:2016-01-07 07:08:28

标签: shell

这些

之间的区别是什么
  Python abcd.py > abcd.logs

Python abcd.py >> abcd.logs

在任何一种情况下,程序的输出都存储在重定向操作符之后提供名称的文件中。

2 个答案:

答案 0 :(得分:5)

它可能取决于您使用的shell,但常见的行为是>将覆盖目标文件,而>>将附加到它。如果目标文件不存在,则会在两种情况下都创建它。

答案 1 :(得分:1)

如果您使用>

  • 如果文件存在:它将覆盖文件
  • 如果文件不存在:它将创建文件

如果您使用>>

  • 如果文件存在:它将附加到文件
  • 如果文件不存在:它将创建文件

但是,您经常可以更改此默认行为。您还可以在脚本文件中遇到>|

Clobber - 选项

这些规则的最常见变更通常被称为" clobber" -option。

在bash中,您可以通过以下方式实现此目的:

set -o noclobber # This will set the noclobber option
set +o noclobber # This will unset the noclobber option

在Zsh中,您可以通过以下方式实现此目的:

setopt CLOBBER # This will set the CLOBBER option
unsetopt CLOBBER # This will unset the CLOBBER option

如果设置了" clobber" -option(或者#34; noclobber" -option unset),它将如下所示:

如果您将>与clobber-option一起使用:

  • 如果文件存在:错误
  • 如果文件不存在:它将创建文件

如果您将>>与clobber-option一起使用:

  • 如果文件存在:它将附加到文件
  • 如果文件不存在:错误

如果您将>|与clobber-option一起使用:

  • 如果文件存在:它将覆盖文件
  • 如果文件不存在:它将创建文件