使用 -exec 和 -mtime 執行“find”命令時參數無效

使用 -exec 和 -mtime 執行“find”命令時參數無效

Centos 上出現了相當奇怪的錯誤訊息。

我嘗試運行這個命令:

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

我得到的錯誤是:

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

其他發行版上的「查找」會有所不同嗎?

答案1

-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 分鐘前。

答案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 \;

相關內容