Linux常用命令--文件(夹)查找之find命令
Linux系統用得越久,就會發現這真的是一個很優秀的系統,各種方便各種實用各種高效率。
晚飯前寫一下find命令的筆記。
其實這篇筆記,也是看到一篇外文博客,寫得不錯,自己拿來練一練,然后才順便寫篇筆記。
find命令是我們在Linux下最常用的文件(夾)查找命令之一,它的用途很廣泛,可以通過一個文件(夾)的所屬用戶、用戶組,包含名稱,時間(更新或更舊),文件類型(.txt,.rar后綴),文件大小,文件權限等等條件來對文件(夾)進行查找,這個命令對于系統管理員來說肯定是很實用的。
Find?--help給出的幫助內容很簡單,我們首先需要知道的是find的表達式可以由四個主要成分組成:操作符、選項、測試表達式以及動作。
我們最常用到是測試表達式和動作這兩部分。先看一下著兩部分由哪些基本選項組成:
如果你需要知道更詳細的幫助內容,用man手冊即可:
man?find
比如說我想知道-amin這個選項具體是什么意思,干什么用,在man手冊給出的文檔中我們就可以找到:
?
可見,-amin選項幫我們找到的是n分鐘前使用過的文件。
?
又比如說-iname這個選項:
?
?
可見,-iname選項的作用就是忽略文件名的大小寫,凡是字符匹配的文件都對其進行打印。
?
其他的就不再一一列舉了。看man文件找得比較慢,所以還是平時多寫一寫常用的、實用的選項搭配比較實際。
?
?
一、根據文件名查找文件:
?
?
根據文件名查找文件,我們使用-name測試選項即可,如果需要忽略大小寫,則可以使用-iname選項。
?
比如說,我在桌面新建了一個文件夾testdir,里面有文件如下:
?
?
顏色高亮的為文件夾,text.php重復,方便后面練習“通過文件類型查找文件”。
?
權限為644和777的文件我們在后面練習“通過文件權限查找”的時候會用到。
?
Tips:Linux中的文件權限,4為讀,2為寫,1為執行,權限順序為文件所屬用戶、文件所屬用戶組、其他用戶。
?
1、最簡單的模糊匹配:
?
如果知道一個文件的具體名字進行find查詢,一般只是為了確定這個文件是否存在,就沒必要練了,先寫一下最基本的模糊匹配。比如,我想查全部起始字符為“test”的文件:
?
?
2、只查找文件夾:
?
需要用到-type測試選項,接上面的例子,我只要文件夾(dir):
?
3、只查找文件(file):
?
?
二、根據文件權限進行查找:
?
?
1、最基礎的查找:
?
比如,我們要查找權限為777的文件:
?
?
如果需要查找權限非777的文件,那么補充!或者-not選項即可:
?
?
1、指定具體權限:
?
我們先看看幫助文檔怎么介紹這個選項,大意是-perm?/后必須跟u、g或o三種選擇。
?
?
?
看了下幫助文檔給的例子,挺好的,給貼上來:
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.三、根據時間信息查找文件:
?
?
我們一般可以根據兩種時間信息查找文件,一種是文件修改時間,另一種是文件上次被訪問的時間。
?
第一種查找,一般常用兩種選項:-mmin?N,-mtime?N,前者的時間N為分鐘,后者的N為天數。我們都知道,N可以是:N,+N,-N三種形式,所以我們可以查找一個時間范圍內的文件。
?
比如,我想找修改時間超過3分鐘,但是還沒到50分鐘的文件:
?
第二種也是類似的,對應的選項則是-cmin和-ctime。
?
?
四、根據文件大小查找文件:
?
?
需要用到選項如下,支持多種單位:
?
?
?
比如我想找一個大小大于30bytes,而且文件名是以“testfi”開頭的文件:
?
?
用grep正則表達式限制輸出到控制臺的結果即可。
?
五、查找文件并進行操作:
我們比較常用的選項(嚴格來說是動作)如下:-exec?command?{}?\?
注意空格。
比如說,我想找到權限為644的文件,然后把它修改為權限777:
?
?
?
題外話,rename命令:
?
本來想演示重命名的,于是又想起rename命令這個好東西,就順便寫一下,rename命令本身就是支持正則表達式的,比如說批量改名:
?
?
第一個例子是將所有含有.bak后綴的文件的后綴去除,第二個例子是將全部大小改為小寫。
?
如果需要批量改名,則語法如下:
?
rename?‘s/\.jpp$/\.jpg/’?*.jpp
?
意為將所有后綴為jpp的文件改成后綴為jpg。
?
?
?
?
轉載于:https://www.cnblogs.com/nerohwang/p/3502273.html
總結
以上是生活随笔為你收集整理的Linux常用命令--文件(夹)查找之find命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在windows 2008/2012中配
- 下一篇: Linux C Socket编程发送结构