10 分以上変更されていないファイルを別のフォルダーに移動するにはどうすればよいでしょうか?

10 分以上変更されていないファイルを別のフォルダーに移動するにはどうすればよいでしょうか?

「10 分」を任意の値に置き換えます。基本的に、ファイルがそれ以上大きくならない場合のみファイルを移動します。コマンドラインまたは bash スクリプトでこれを実行するにはどうすればよいですか?

簡単に実行できるソリューションcronが望ましいです。


詳細:

  • OS: CentOS
  • これまで試したこと:どこから始めればいいのか分からないので何もしない
  • ファイルの種類: ディレクトリ内の任意のファイル

答え1

ここに 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

方法はたくさんあります。

find の使用:

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分ごとに実行します。

関連情報