如何將檔案移動到另一個資料夾,但前提是該檔案在 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 分鐘運行一次。

相關內容