1

我要做的是将名为 myFile 的文件从目录 A 复制到目录 B。在此之后,我对刚刚复制到目录 B 的文件执行一些操作。这工作正常。但是,如果目录 A 中的文件在过去 7 天内已被修改,我希望脚本运行所有操作。否则它应该什么都不做。所以基本上我想要:

#!/bin/sh

if ((modification date of myFile in dir A) >= (current date minus 7 days))

    DO STUFF

else

    DO NOTHING

end

因此,要执行的操作已经启动并正在运行。我只需要上面伪代码中描述的条件结构。有人知道如何为 bash 脚本构建它吗?

4

1 回答 1

1

您可以通过编写以下代码进行测试:

filepath="your/file/path"
if [[ $(find ${filepath} -mtime -7 | wc -l) ]]; then
    # modified within past 7 days
else
    # not modified within the last 7 days
fi

来自man find

-mtime n
       File's data was last modified n*24 hours ago.  See the  comments
       for -atime to understand how rounding affects the interpretation
       of file modification times.

Numeric arguments can be specified as

+n     for greater than n,

-n     for less than n,

 n     for exactly n.
于 2013-02-26T13:49:44.290 回答