{eval=Array;=+count(Array);}
說(shuō)起find這個(gè)命令很基礎(chǔ)也很重要,用好了可以干很多事情,參數(shù)也很多,筆者也不一一贅述,挑常用的說(shuō)說(shuō)。
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [ path...] [expression]
主要部分find 后緊跟要搜索的目錄,比如搜索/usr 就是find /usr
關(guān)于參數(shù)我就說(shuō)幾個(gè)比較重要的:
1、-type 用于搜索的類型,比如d為目錄 ,l 為軟鏈接,f 為文件,f用的多。
比如搜索/usr的文件,就是:
find /usr -type f
這個(gè)的好處是去除了搜索結(jié)果中的目錄,默認(rèn)是帶目錄的,如果不慎重再做進(jìn)一步操作(-exec),如刪除時(shí)候會(huì)誤刪除,小編的血的教訓(xùn)。所以不論任何時(shí)候都加上-type f
2、-name xxx 搜索文件名,這個(gè)最常用。為啥呢,搜索文件名呀,都是用這個(gè)。注意的時(shí)候這個(gè)地方的名稱是支持泛查詢的,比如要查詢python原文件,可以用:
find /usr/ -type f -name *.py
結(jié)果如下(各個(gè)機(jī)器可能結(jié)果不一樣)
3、-mtime n 文件修改時(shí)間,類似的有-atime 創(chuàng)建時(shí)間 -ctime 訪問(wèn)時(shí)間 。為啥這個(gè)常用呢,主要用它查文件變化,比如網(wǎng)站目錄被篡改了,用這個(gè)一查就查的到,蟲蟲有個(gè)一個(gè)模塊就是基于這個(gè)來(lái)防止網(wǎng)站被篡改的,我的早期的文章中有寫,關(guān)注蟲蟲就能看得到。
比如網(wǎng)站目錄中,我們要查找下最近7天內(nèi)變化的文件,就可以用下面的命令(假設(shè)網(wǎng)站更目錄為/web):
find /web -type f -mtime -7
注意 -mtime 后面數(shù)字n 表示n天 +n表示超過(guò)n天 ,-n表示n天內(nèi)。
4、-perm 根據(jù)權(quán)限查找,比如
find ~ -perm 0700 查找你當(dāng)前用戶目錄下文件權(quán)限為用戶可讀寫執(zhí)行的。
5、-size (+-)n[mkc], 根據(jù)文件大小查詢,比如查詢文件大小為小于10k的
find ~ -size -10k
注意,加減表示大于小于不帶的話是恰好,m是兆字節(jié),k是千字節(jié),c字節(jié),這個(gè)值和默認(rèn)ls -l出來(lái)大小不帶單位的值類似:上面截圖展示了,我們搜索大小 5682c的文件,恰好就是ls -al顯示出來(lái)的大小5682的 .viminfo文件。
其他更多參數(shù)就不多說(shuō)了。
find 可以和其他命令組合用,比如find搜出來(lái)的文件列表,可以用grep 在做下搜索,比如搜索python源文件,還可以用
find /usr -type f |grep ".py"
可以用find生成文件列表,把列表傳遞個(gè)grep 對(duì)文件做搜索
比有兩個(gè)文件 a,b內(nèi)容如下:我們搜索兩個(gè)文件中包含hello word的行:
grep "hello word" `find -type f`
搜索包含chongchong的行:
grep "chongchong" `find -type f`注意上面find -type f外面是反引號(hào),表示執(zhí)行,就是Esc下面那個(gè)符號(hào)。
借助find可以做很多事情:
比如我們要?jiǎng)h除目錄下空文件(大小為零的),可以用:
find -type f -size 0 -exec rm {} ;
要?jiǎng)h除30天以前的文件用
find -type f -mtime +30 rm {} ;
這個(gè)在很多自動(dòng)化任務(wù)腳本中應(yīng)該有,注意要加上-type f 不然,目錄會(huì)被誤刪。
好了關(guān)于find 今天就隨手寫這么多,如果喜歡請(qǐng)關(guān)注蟲蟲,蟲蟲可以寫更多的內(nèi)容。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答