Shell文件查找之find命令(1)
????????日常工作中常用到腳本,像數(shù)據(jù)備份、數(shù)據(jù)壓縮等等這樣一些腳本。
????????find命令的優(yōu)點:條件比較多應用場景廣范,缺點:效率比較低,速度比較慢。
1、文件查找之find命令
? (1) 語法格式:
????? find [路徑] [選項] [操作]
?????1). 路徑:可以寫相對路徑,也可以寫絕對路徑。
?????2). 選項參數(shù)對照表:
????????[1] -name :根據(jù)文件名查找
????????[2] -perm :根據(jù)文件權限查找,如權限777,通常是一個數(shù)字
????????[3] -prune :該選項可以排除某些查找目錄
????????[4] -user :根據(jù)文件屬主查找
? ? ??? [5] -group :根據(jù)文件屬組查找
??????? [6] -mtime -n | +n :根據(jù)文件更改時間查找,n是以天為單位計算的
? ? ? ??[7] -mmin -n | +n :根據(jù)文件更改時間查找,n是以分鐘為單位計算的
? ? ??? [8] -nogroup:查找無有效屬組的文件,比如添加某一個用戶,在這個用戶產(chǎn)出很多文件,有一天你這個用戶名被刪除掉了,剩下的文件就是沒有有效屬組文件。
????????[9] -nouser:查找無有效屬主的文件
???????[10] -newer file1 ! file2:查找更改時間比file1新但比file2舊IDE文件,正確shell使用格式:find . -newer file1 \! \( -newer file2 \),點,空格,轉義,缺一不可,否則都會報錯。
? ? ? ?[11] -type:按文件類型查找
? ? ? ?[12] -size -n +n:按文件大小查找
? ? ???[13] -mindepth n:從n級子目錄開始搜索
? ? ???[14] -maxdepth n:最多搜索到n級子目錄
? 3). 操作:
????????[1] -print: 打印輸出
????????[2] -exec: 對搜索到文件執(zhí)行特定的操作,格式為:【-exec 'command' {} \;】,command表示要執(zhí)行的命令,{}一對大括號表示匹配前面搜索到結果,“\;”反斜杠分號固定寫法。??????
?例子1: 搜索/etc下的文件(非目錄),文件名以conf結尾,且大于10k,然后將其刪除find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;例子2: 將/var/log/目錄下以log結尾的文件,且更改時間在7天以上的刪除find /var/log/ -name '*.log' -mtime +7 -exec rm -rf {} \;例子3: 搜索條件和例子1一樣,只是不刪除,而是將其復制到/root/conf/目錄下find ./etc -size +10k -type f -name '*.conf' -exec cp {} ./test_5/ \;? ? [3] -ok: 和exec功能一樣,只是每次操作都會給用戶提示。
4).邏輯運算符:
????????-a 與
????????-o 或
????????-not | ! 非???????
例子1:查找當前目錄下,屬主不是hdfs的所有文件find . -not -user hdfs | find . ! -user hdfs例子2:查找當前目錄下,屬主屬于hdfs,且大小大于300字節(jié)的文件find . -type f -a -user hdfs -a -size +300c例子3:查找當前目錄下的屬主為hdfs 或者以 xml 結尾的普通文件find . -type f -a \( -user hdfs -o -name '*.xml' \)總結
以上是生活随笔為你收集整理的Shell文件查找之find命令(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微波暗室设计
- 下一篇: HTML5+CSS编写个人博客界面