-exec および -mtime で 'find' コマンドを実行するときに無効な引数が返されました

-exec および -mtime で 'find' コマンドを実行するときに無効な引数が返されました

Centos でかなり奇妙なエラー メッセージが表示されました。

このコマンドを実行してみました:

find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;

そして、私が受け取ったエラー:

find: invalid argument `-exec' to `-mtime'

他のディストリビューションでは「find」が異なる可能性がありますか?

答え1

-mtime数日間使用されます。2 時間必要な場合は、これを確認してください。

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

mmin は分を指定するので、-mmin +120 は 120 分以上前 (2 時間) のものをフィルタリングします。マニュアルより:

-mtimen 時刻

ファイルのデータは n*24 時間前に最後に変更されました。丸めがファイル変更時刻の解釈にどのように影響するかを理解するには、-atime のコメントを参照してください。

-mmin n

ファイルのデータは n 分前に最後に変更されました。

答え2

MacOS での実装findは、Linux で利用可能なものとは少し異なります。上記のエラーは Linux システムで発生したものだと思います。

Linux では、mtime+- と数字のみを受け入れます。数字は日数です。

上記の目的を達成するには、mmin

-mmin n
      File’s data was last modified n minutes ago.

このコマンドは Linux で動作するはずです:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

関連情報