【问题标题】:How to make cat not print anything if the folder is empty如果文件夹为空,如何让 cat 不打印任何内容
【发布时间】:2015-12-21 18:27:16
【问题描述】:

我正在研究 bash,我的任务是打印出最后修改的子文件夹中的所有文件,我只能使用一行命令。 这是我到目前为止所得到的:

cat "$( ls -t | head -1)"/*.*

这工作正常,除非最新修改的文​​件夹为空,在这种情况下 cat 返回错误。我需要避免这种情况,让 cat 什么也不打印出来。

【问题讨论】:

  • cat "$(ls -t | head -1)" 2>/dev/null
  • 欢迎来到stackoverflow!以后,将您的代码缩进四个空格。这将使星星显示,因为它可以防止所有其他特殊格式。这次我给你修好了。

标签: bash cat


【解决方案1】:

考虑将标准错误重定向到/dev/null。这将导致命令产生的任何错误消息被发送到标准输出以外的地方。如果您的cat 抛出错误,该消息将被发送到其他地方,/dev/null 忽略它,或者如果您想记录它,则发送到某个文件。你的命令看起来像:

cat "$( ls -t | head -1)"/*.* 2> /dev/null

2 代表标准错误,因此2> 将其指向之后指定的位置。

【讨论】:

    【解决方案2】:

    2>/dev/null 此错误重定向会将所有错误消息重定向到无法恢复的转储,

    使用命令 2> /dev/null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2018-07-22
      • 2019-05-26
      • 2021-02-13
      相关资源
      最近更新 更多