如何根据文件日期的比较有条件地执行 bash 代码?

发布于 2025-01-05 00:10:29 字数 307 浏览 0 评论 0原文

我正在尝试做这样的事情:

for f in $SOMEDIR
    do
        if "$f is newer than some other file"
        then
             "do this"
        else
             "do this"
        fi
    done
fi

我知道我已经看到了一种很好且简单的方法来快速比较文件日期并在第一个文件日期恰好比第二个文件日期新时执行,但我不知道在哪里可以找到再说一遍。

任何帮助都会很棒!

I'm trying to do something like this:

for f in $SOMEDIR
    do
        if "$f is newer than some other file"
        then
             "do this"
        else
             "do this"
        fi
    done
fi

I know I've seen a nice and easy way to quickly compare file dates and execute if the first file date happens to be newer than the second but I have no clue where to look to find that again.

Any help would be great!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情场扛把子 2025-01-12 00:10:29

使用文件测试运算符。

摘自:http://tldp.org/LDP/abs/html/fto.html< /a>

f1 -nt f2
文件 f1 比 f2 新

f1 -ot f2
文件 f1 早于 f2

假设 test 和 test2 是文件。

if [[ "test" -nt "test2" ]]; then
    echo "yes"
else
    echo "no"
fi

if [[ "test" -ot "test2" ]]; then
    echo "yes"
else
    echo "no"
fi

执行:

 $ ./test
 yes
 no

Use a file test operator.

Taken from: http://tldp.org/LDP/abs/html/fto.html

f1 -nt f2
file f1 is newer than f2

f1 -ot f2
file f1 is older than f2

Assuming test and test2 are files.

if [[ "test" -nt "test2" ]]; then
    echo "yes"
else
    echo "no"
fi

if [[ "test" -ot "test2" ]]; then
    echo "yes"
else
    echo "no"
fi

Executed:

 $ ./test
 yes
 no
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文