在工作中不可或缺的工具find:查找系統中的各種文件,對查找的文件進行操作,這就是find的作用。進入正題:
1、查找下系統中有一下系統中有幾個文件叫issue的
[root@localhost private]#find / -name issue
/etc/issue
/root/etc2017-02-28/issue
注:find查找是精確查找,不是模糊匹配
2、現在有一個任務,需要備份一下/etc目錄下的文件,只備份/etc目錄當級目錄下的文件
[root@localhost private]#find /etc -maxdepth 1 -mindepth 1
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/resolv.conf
……..
命令中-maxdepth是最大目錄遞歸,面mindepth是最小目錄遞歸,而上面打示例是精確定位目錄遞歸次數
3、下面來說說與文件類型的相關搜索
先來回憶一下文件都有那些類型吧:
file(f):普通文件
directory(d):目錄
character(c):字符型設備文件
block(b):塊類型設備文件
link(l):軟鏈接文件
socket(s):套接字文件
pipe(p):管道文件
來查看一下/etc目錄一級目錄中的以.conf字符結尾的普通文件
find /etc -maxdepth 1 -mindepth 1 -type f -name “*.conf”
/etc/resolv.conf
/etc/sos.conf
/etc/logrotate.conf
/etc/host.conf
/etc/request-key.conf
做個小解釋吧:精確定位目錄層級使用 -maxdepth 1 -mindepth 1,而定位文件時使用-type再加上文件類型,而在文件名通配方面需要加引號
4、來說說相關時間的查找吧
查找一下最近7天發生變劃的文件吧
find ./ -mtime -7
這個有mtime,atime,ctime之分,可還記的時間戳,就是它,所心查找對應的時間發生的不同的改變的文件就這么查吧
5、按文件大小進行查找
這個文件大小查找有點坑,在這個值區間太坑了不好玩
查找當前目錄大于1M的目錄
find ./ -size +1M -exec ls -lh {} \;
-rw-r–r–. 1 root root 1.8M Mar 4 15:04 ./.cache/tracker/meta.db
-rw-r–r–. 1 root root 1.2M Mar 4 15:04 ./.cache/tracker/meta.db-wal
在生產環境也只有這個比較常用,查看下特定目錄下有那些大文件,所面的操作后面會說明
6、下面來看看權限相關的查詢
查詢一下文件的其它用戶有執行權限的文件
find ./ -perm -001 -ls
查詢當前目錄有執行權限的文件
find ./ -perm /111 -ls
注:權限匹配中-mode是并的關系,在這之中0表示不關心這一個位置,例如-111就是屬主,屬組,其它用戶都有執行權限的文件,而/mode正好相反,是或的關系,只要有一個位置匹配上就可以輸出
7、下面說說操作匹配項
這里說個3+1吧:
-ls:這算是3個中的一個輸出list長格式
-ok:這算是3個中的一個后面可以加命令進行操作
固定格式是:-ok COMMAND {} \;
-exec:這個同ok,只是進行操作時不提示
這里說一個示例吧,要把當前目錄下的可執行文件移動到tmp目錄下
find ./ -type f -perm /111 -exec mv {} /tmp/test/{} \;
來說說最后的1吧xarges,這個比較給力,可以完成大批量文件操作
find a | xargs rm
8、說一下用戶相關的問題吧:
-user,-group,-gid,-uid,-nouser,-nogroup,
這個是查找用戶的相關的參數,其中重要的就是查找沒有用戶,沒有用戶組的兩個相關的參數了,這個可以強化設備安全,因為沒有用戶的文件,會照成設備安全隱患
9、上面介紹了這么多find的參數,但是這樣的find并不強大,但是find支持或與并,這個就強大了,可以多條件進行匹配了
非:-not
與:-a
或:-o
查找var目錄下的用戶是root,用戶組是mail的文件
find ./ -user root -a -group mail
注:-a可省略
寫法多,正在挖掘
原創文章,作者:gaomei,如若轉載,請注明出處:http://www.www58058.com/70561