[20210408]使用linux find注意.txt
[20210408]使用linux find注意.txt
--//昨天本想清理生產系統trc檔案,使用find命令遇到一些問題,引起一些注意透過例子說明。
--//注:測試前我關閉測試資料庫,主要想避免一些測試中資料庫再產生trc檔案。
$ cd /u01/app/oracle/diag/rdbms/book/book/trace
$ find . -name "*.tr?" -print -mtime +1 |wc
2324 2324 94020
$ find . -name "*.tr?" -print -mtime 1 |wc
2324 2324 94020
$ find . -name "*.tr?" -print -mtime -1 |wc
2324 2324 94020
--//不可能-mtime 的三個引數+1 ,1 ,-1 的情況,3個結果一樣。
--//刪除-print引數。
$ find . -name "*.tr?" -mtime -1 |wc
56 56 1372
$ find . -name "*.tr?" -mtime 1 |wc
1552 1552 74634
$ find . -name "*.tr?" -mtime +1 |wc
634 634 13968
--//實際上你會以為是-print的問題,實際上寫成如下:
$ find . -name "*.tr?" -mtime +1 -print |wc
634 634 13968
--//實際上你不寫-print,預設就是print。看了半天文件我也沒有搞明白自己錯誤在哪裡。視乎下面內容說明問題。
$ man find
....
EXPRESSIONS
The expression is made up of options (which affect overall operation rather than the processing of a specific
file, and always return true), tests (which return a true or false value), and actions (which have side effects
and return a true or false value), all separated by operators. and is assumed where the operator is omitted.
If the expression contains no actions other than -prune, -print is performed on all files for which the
expression is true.
--//注意最後這一句。總之如果有print最後放在最後或者乾脆不寫。實際上寫成如下也是正確的。
$ find . -name "*.tr?" -prune -mtime +1|wc
634 634 13968
--//總之在使用find加刪除操作前注意看一下,-print最好不寫.
--//順便複習一下touch以及find操作。
# touch -d '2020-07-16 16:55:00.000' /tmp/20200716165500
# touch -t '202007161655' /tmp/20200716165500x
# touch -t '202007161655.00' /tmp/20200716165500y
# ls -l /tmp/20200716165500*
-rw-r----- 1 root root 0 2020-07-16 16:55:00 /tmp/20200716165500
-rw-r----- 1 root root 0 2020-07-16 16:55:00 /tmp/20200716165500x
-rw-r----- 1 root root 0 2020-07-16 16:55:00 /tmp/20200716165500y
--//這樣可以建立一個時間戳等於'2020-07-16 16:55:00.000'的檔案。
# find . "*.tr?" -newer /tmp/20200716165500
--//取反可以使用-not 或者!
# find . "*.tr?" -not -newer /tmp/20200716165500
# find . "*.tr?" ! -newer /tmp/20200716165500
--//find查詢特定範圍的檔案,以前的測試做一個記錄。
touch -t '201111140000' /tmp/start_of_20111114
touch -t '201111141200' /tmp/end_of_20111114
find . -newer /tmp/start_of_20111114 ! -newer /tmp/end_of_20111114 -print
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2766983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20210408]max優化.txt優化
- 使用find_in_set()函式的注意事項函式
- 如何在 Linux 中使用 findLinux
- 常用find命令與xargs.txt
- [20171206]關於一些linux命令使用注意.txtLinux
- 在 Linux中find命令使用技巧Linux
- Linux findLinux
- Linux下ulimit、find命令使用者LinuxMIT
- Linux學習之linux的find命令如何使用?Linux
- [20180302]使用find命令小錯誤.txt
- linux find命令Linux
- linux find 命令Linux
- linux find 命令!Linux
- Linux系統下find、locate命令如何使用?Linux
- [20220121]windows使用grep注意.txtWindows
- [20161006]windows下bbed使用注意.txtWindows
- 為什麼要謹慎使用Linux find命令?Linux
- linux find 命令和 while 命令聯合使用案例LinuxWhile
- Linux - find與grepLinux
- linux之shell findLinux
- Linux find commandLinux
- linux/unix find命令Linux
- 如何使用 Find 和 Locate 在 Linux 中搜尋檔案Linux
- Linux中fork的使用注意事項Linux
- Linux find 命令詳解Linux
- Linux find命令詳解Linux
- linux find command studyLinux
- Linux精講——find命令Linux
- linux find詳解(轉)Linux
- [20140823]在sqlplus使用copy注意.txtSQL
- [20210330]bash使用source or ..呼叫shell指令碼注意txt指令碼
- [20150803]使用函式索引注意的問題.txt函式索引
- linux下的find 和 grepLinux
- 【Linux】find指令和grep指令!!!Linux
- Linux find常見用法示例Linux
- linux find depth引數理解Linux
- Linux 常用基本命令 findLinux
- Unable to Find Sources for Current Linux KernelLinux