如何将文件移动到另一个文件夹,但前提是该文件在 10 分钟后没有被修改过?

如何将文件移动到另一个文件夹,但前提是该文件在 10 分钟后没有被修改过?

将“10 分钟”替换为任意值。基本上我只想在文件不再增长时移动该文件。如何在命令行或 bash 脚本上执行此操作?

首选易于解决的解决方案cron


细节:

  • 操作系统:CentOS
  • 到目前为止我已经尝试过:什么都没有,因为我不知道从哪里开始
  • 什么样的文件:目录中的任何文件

答案1

这里一行命令:

find /path/to/dir1 -type f ! -mmin -10 -exec mv {} /path/to/dir2 \;

替换-10成你想要的任何内容,规则是:

+n     for greater than n,
-n     for less than n,
n      for exactly n.

答案2

有很多方法。

使用查找:

if find some_directory -mmin +10 | grep "^filename$" ; then
    mv filename somewhere_else
fi

另一种方法是计算 md5sum 并进行比较

touch .filename.md5

prev_md5=$(cat .filename.md5)
new_md5=$(md5sum filename)

if [ "$prev_md5" = "$new_md5" ] ; then
    mv filename somewhere_else
fi
echo "$new_md5" > .filename.md5

每 10 分钟运行一次。

相关内容