如果文件夹为空,如何使cat不打印任何内容

时间:2015-12-21 18:27:16

标签: bash cat

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

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

这是正常工作,除非最新修改的文​​件夹为空,在这种情况下cat会返回错误。我需要避免这种情况,并且根本不打印任何东西。

2 个答案:

答案 0 :(得分:2)

考虑将标准错误重定向到/dev/null。这将导致命令生成的任何错误消息被发送到标准输出以外的其他位置。如果您的cat引发错误,则会将消息发送到其他地方,/dev/null忽略它或某些文件(如果您要记录它)。你的命令看起来像是:

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

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

答案 1 :(得分:0)

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

使用命令2>的/ dev / null的