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 に答える