Scripting

如何將文件移動到另一個文件夾,但前提是它自 10 分鐘以來沒有被修改?

  • June 4, 2021

用任何值替換“10 分鐘”。基本上,如果文件不再增長,我只想移動文件。如何在命令行或 bash 腳本上執行此操作?

易於解決的解決方案cron是首選。


細節:

  • 作業系統:CentOS
  • 到目前為止我所嘗試的:什麼都沒有,因為我什至不知道從哪裡開始
  • 什麼樣的文件:目錄中的任何文件

這裡的一行命令:

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.

有很多方法。

使用查找:

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 分鐘執行一次。

引用自:https://unix.stackexchange.com/questions/652641