web-dev-qa-db-ja.com

-execおよび-mtimeを指定して「find」コマンドを実行すると引数が無効になります

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

私はこのコマンドを実行しようとしました:

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

そして私が持っているエラー:

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

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

2
t.fazakas

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

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

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

-mtime n

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

-mmin n

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

4
alphamikevictor

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 \;
0
Luis