Linux常用命令--文件(夹)查找之find命令
Linux系統(tǒng)用得越久,就會(huì)發(fā)現(xiàn)這真的是一個(gè)很優(yōu)秀的系統(tǒng),各種方便各種實(shí)用各種高效率。
晚飯前寫(xiě)一下find命令的筆記。
其實(shí)這篇筆記,也是看到一篇外文博客,寫(xiě)得不錯(cuò),自己拿來(lái)練一練,然后才順便寫(xiě)篇筆記。
find命令是我們?cè)?/span>Linux下最常用的文件(夾)查找命令之一,它的用途很廣泛,可以通過(guò)一個(gè)文件(夾)的所屬用戶、用戶組,包含名稱(chēng),時(shí)間(更新或更舊),文件類(lèi)型(.txt,.rar后綴),文件大小,文件權(quán)限等等條件來(lái)對(duì)文件(夾)進(jìn)行查找,這個(gè)命令對(duì)于系統(tǒng)管理員來(lái)說(shuō)肯定是很實(shí)用的。
Find?--help給出的幫助內(nèi)容很簡(jiǎn)單,我們首先需要知道的是find的表達(dá)式可以由四個(gè)主要成分組成:操作符、選項(xiàng)、測(cè)試表達(dá)式以及動(dòng)作。
我們最常用到是測(cè)試表達(dá)式和動(dòng)作這兩部分。先看一下著兩部分由哪些基本選項(xiàng)組成:
如果你需要知道更詳細(xì)的幫助內(nèi)容,用man手冊(cè)即可:
man?find
比如說(shuō)我想知道-amin這個(gè)選項(xiàng)具體是什么意思,干什么用,在man手冊(cè)給出的文檔中我們就可以找到:
?
可見(jiàn),-amin選項(xiàng)幫我們找到的是n分鐘前使用過(guò)的文件。
?
又比如說(shuō)-iname這個(gè)選項(xiàng):
?
?
可見(jiàn),-iname選項(xiàng)的作用就是忽略文件名的大小寫(xiě),凡是字符匹配的文件都對(duì)其進(jìn)行打印。
?
其他的就不再一一列舉了。看man文件找得比較慢,所以還是平時(shí)多寫(xiě)一寫(xiě)常用的、實(shí)用的選項(xiàng)搭配比較實(shí)際。
?
?
一、根據(jù)文件名查找文件:
?
?
根據(jù)文件名查找文件,我們使用-name測(cè)試選項(xiàng)即可,如果需要忽略大小寫(xiě),則可以使用-iname選項(xiàng)。
?
比如說(shuō),我在桌面新建了一個(gè)文件夾testdir,里面有文件如下:
?
?
顏色高亮的為文件夾,text.php重復(fù),方便后面練習(xí)“通過(guò)文件類(lèi)型查找文件”。
?
權(quán)限為644和777的文件我們?cè)诤竺婢毩?xí)“通過(guò)文件權(quán)限查找”的時(shí)候會(huì)用到。
?
Tips:Linux中的文件權(quán)限,4為讀,2為寫(xiě),1為執(zhí)行,權(quán)限順序?yàn)槲募鶎儆脩簟⑽募鶎儆脩艚M、其他用戶。
?
1、最簡(jiǎn)單的模糊匹配:
?
如果知道一個(gè)文件的具體名字進(jìn)行find查詢(xún),一般只是為了確定這個(gè)文件是否存在,就沒(méi)必要練了,先寫(xiě)一下最基本的模糊匹配。比如,我想查全部起始字符為“test”的文件:
?
?
2、只查找文件夾:
?
需要用到-type測(cè)試選項(xiàng),接上面的例子,我只要文件夾(dir):
?
3、只查找文件(file):
?
?
二、根據(jù)文件權(quán)限進(jìn)行查找:
?
?
1、最基礎(chǔ)的查找:
?
比如,我們要查找權(quán)限為777的文件:
?
?
如果需要查找權(quán)限非777的文件,那么補(bǔ)充!或者-not選項(xiàng)即可:
?
?
1、指定具體權(quán)限:
?
我們先看看幫助文檔怎么介紹這個(gè)選項(xiàng),大意是-perm?/后必須跟u、g或o三種選擇。
?
?
?
看了下幫助文檔給的例子,挺好的,給貼上來(lái):
find . -perm /220 find . -perm /u+w,g+w find . -perm /u=w,g=wAll three of these commands do the same thing, but the first one uses the octal representation of the filemode, and the other two use the symbolic form. These commands all search for files which are writable byeither their owner or their group. The files don't have to be writable by both the owner and group to bematched; either will do.find . -perm -220 find . -perm -g+w,u+wBoth these commands do the same thing; search for files which are writable by both their owner and their group.三、根據(jù)時(shí)間信息查找文件:
?
?
我們一般可以根據(jù)兩種時(shí)間信息查找文件,一種是文件修改時(shí)間,另一種是文件上次被訪問(wèn)的時(shí)間。
?
第一種查找,一般常用兩種選項(xiàng):-mmin?N,-mtime?N,前者的時(shí)間N為分鐘,后者的N為天數(shù)。我們都知道,N可以是:N,+N,-N三種形式,所以我們可以查找一個(gè)時(shí)間范圍內(nèi)的文件。
?
比如,我想找修改時(shí)間超過(guò)3分鐘,但是還沒(méi)到50分鐘的文件:
?
第二種也是類(lèi)似的,對(duì)應(yīng)的選項(xiàng)則是-cmin和-ctime。
?
?
四、根據(jù)文件大小查找文件:
?
?
需要用到選項(xiàng)如下,支持多種單位:
?
?
?
比如我想找一個(gè)大小大于30bytes,而且文件名是以“testfi”開(kāi)頭的文件:
?
?
用grep正則表達(dá)式限制輸出到控制臺(tái)的結(jié)果即可。
?
五、查找文件并進(jìn)行操作:
我們比較常用的選項(xiàng)(嚴(yán)格來(lái)說(shuō)是動(dòng)作)如下:-exec?command?{}?\?
注意空格。
比如說(shuō),我想找到權(quán)限為644的文件,然后把它修改為權(quán)限777:
?
?
?
題外話,rename命令:
?
本來(lái)想演示重命名的,于是又想起rename命令這個(gè)好東西,就順便寫(xiě)一下,rename命令本身就是支持正則表達(dá)式的,比如說(shuō)批量改名:
?
?
第一個(gè)例子是將所有含有.bak后綴的文件的后綴去除,第二個(gè)例子是將全部大小改為小寫(xiě)。
?
如果需要批量改名,則語(yǔ)法如下:
?
rename?‘s/\.jpp$/\.jpg/’?*.jpp
?
意為將所有后綴為jpp的文件改成后綴為jpg。
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/nerohwang/p/3502273.html
總結(jié)
以上是生活随笔為你收集整理的Linux常用命令--文件(夹)查找之find命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在windows 2008/2012中配
- 下一篇: 简单排序——冒泡排序,选择排序,插入排序