如果使用find找不到结果,则打印错误消息

时间:2014-09-09 13:06:17

标签: bash shell unix xargs

我正在尝试编写一个bash脚本,它打印路径$ 1中的所有文件,这些文件的修改时间晚于$ 2。这是我的剧本:

find ./$1 -mtime -$2 -type f | xargs du -h | sort

现在,如果脚本没有返回任何结果,我希望它打印一条错误消息,例如"找不到这样的文件"。当且仅当没有找到文件名时才能打印消息&印刷?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用:

#!/bin/bash

# create a temp file
tmp=$(mktemp)

# run find and redirect output to temp file
find ./"$1" -mtime -"$2" -type f > "$tmp"

# check if temp file is not empty 
if [[ -s "$tmp" ]]; then
    cat "$tmp"
else
    echo "No such files found"
fi

# delete temp file
rm "$tmp"