五、Linux中的搜索文件和目錄命令


Linux中的搜索文件和目錄命令

一、find [搜索范圍][搜索標准] 關鍵字

-name:默認按名稱搜索(文件或者目錄所在的路徑也在搜索范圍之內)

-size:按文件大小搜索

-user:按文件的所有者搜索

 ①find *z*      *是通配符,搜索當前目錄下,所有名稱中包含z的那些文件或者目錄。不加-name,默認是通過-name查找

 

等同於find -name '*z*'         *是通配符,搜索當前目錄下所有的名稱中帶a的文件或目錄,注意,寫上-name時,后面的名稱一定要加上單引號或雙引號,否則會報錯

 

單引號的地方也可以使用雙引號

②find *.txt       *是通配符,搜索當前目錄下所有的.txt文件。不加-name,默認是通過-name查找

 

等同於 find -name '*.txt'    注意,寫上-name時,后面的名稱一定要加上單引號或雙引號,否則會報錯

 

③find -size -1k

 

④find /etc -user zhangsan 搜索/etc目錄下所有的所有者是zhangsan的文件和目錄

二、locate:在整棵目錄樹中搜索文件或者目錄,都是根據名稱搜索,效率高。

locate 與 find 不同: find 是去硬盤找,locate 只在 /var/lib/slocate 資料庫中找。

locate 的速度比 find 快,它並不是真的查找,而是查數據庫,一般文件數據庫在 /var/lib/slocate/slocate.db 中,所以 locate 的查找並不是實時的,而是以數據庫的更新為准。一般是系統自己維護,也可以手工升級數據庫 ,命令為:updatedb。默認情況下 updatedb 每天執行一次。所以一般在使用locate之前要先同步下數據庫(updatedb)。

雖然locate查找的快,但是updatedb占用的時間較長,所以locate一般不常用。

updatedb
locate 關鍵字

updatedb
locate *.txt

locate testDir

 三、搜索過濾命令,在前一個搜索命令的結果中進行按名稱進一步過濾:

搜索命令 |grep [選項] 過濾條件    搜索命令包括 find、locate

查看命令 |grep [選項] 過濾條件   查看命令包括cat、ls 等

選項:

-i     忽略大小寫,i指的是 ignore

-n   顯示行號,n指的是number

-in 忽略大小寫且顯示行號

①find *.txt|grep new 搜索當前目錄下,所有名稱包含new的.txt文件

find /etc -size -5k|grep firefox

②cat t1.txt|grep shanxi

③cat t1.txt|grep -in shanxi     查找t1.txt文件中的shanxi,-i是忽略大小寫,-in是忽略大小寫且顯示所在行號

 ④ls -al|grep new  查找文件或目錄名中包含new的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM