shell find 命令 find命令報錯 find: paths must precede expression:


編寫shell腳本,報錯,如下面

[root@localhost backup]#find ./ -name mysqldump* -mtime +3 -delete
[root@localhost backup]#find: paths must precede expression: mysqldump.sql.gz
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

解決報錯mysqldump*加單引號

find ./ -name 'mysqldump*' -mtime +3 -delete

或者轉義

find ./ -name mysqldump\* -mtime +3 -delete

 

-mtime+1 表示文件修改時間為大於1天的文件,即距離當前時間2天(48小時)之外的文件
這也能解釋了,為什么6號22點生成的這個文件為什么沒有輸出出來
這里-mtime +1 為什么是48小時以外,而不是24小時以外呢,因為n只能是整數,比1大的下一個整數是2,所以是48小時以外的

-mtime 1 表示文件修改時間距離當前為1天的文件,即距離當前時間1天(24小時-48小時)的文件

-mtime 0 表示文件修改時間距離當前為0天的文件,即距離當前時間不到1天(24小時)以內的文件

-mtime -1 表示文件修改時間為小於1天的文件,即距離當前時間1天(24小時)之內的文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM