文章插圖

文章插圖
1. 前言
本文主要介紹Linux系統下有哪些全局搜索命令,并講解相關命令的使用方法與日常使用案例 。
我們先來了解一下Linux下主要的5個全局搜索的命令工具 。他們分別是find,locate,grep,which,whereis
其中,find是一個強大實時搜索工具,Linux支持的文件類型它都可以搜索到,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般是用于搜索程序相關的文件內容 。
linux全局搜索命令
2. Linux使用find命令全局搜索文件
find命令在某個目錄下查找 。
一般使用格式:
find <pathname> <-option> <filetype> <action> -pathname:所要查找的目錄及其所有子目錄(默認遞歸查找) 。默認為當前目錄 。
-option:指定參數 。
-filetype:想要查找的文件類型 。
-action:對查找結果進行的處理 。
在linux的日常管理中,使用find命令全局搜索文件的使用頻率很高,熟練掌握以及靈活運用對提高工作效率很有幫助 。
find的語法比較簡單,常用參數的就那么幾個,比如-name、-type、-ctime等 。本文只是介紹其中一些常用的使用案例,如果需要更多的幫助,請參考find的使用手冊 。
2.1 Linux使用`find`命令根據文件名全局搜索文件
搜索當前目錄下名字為mypic.png的文件
[[email protected] ~]# find . -name "mypic.png"搜索當前目錄下所有的jpg文件
[[email protected] ~]# find . -name "*.jpg"搜索當前目錄下的jpg文件和png文件
[[email protected] ~]# find . -name "*.jpg" -o -name "*.png"搜索當前目錄下不是以png結尾的文件
[[email protected] ~]# find . ! -name "*.png"2.2 使用`find`命令根據正則表達式全局查找文件
搜索當前目錄下,文件名以數字+png后綴結尾的文件 。
[[email protected] ~]# find . -regex "./*[0-9]+.png" 2.3 使用`find`命令和指定的目錄路徑查找文件
搜索當前目錄下,路徑中包含folder的文件/路徑 。
【Linux全局搜索 Linux命令搜索】[[email protected] ~]# find . -path "*folder*"2.4 使用`find`命令根據文件類型查找
通過-type進行文件類型的過濾 。
f 普通文件l 符號連接d 目錄c 字符設備b 塊設備s 套接字p Fifo
比如,搜索當前目錄下,路徑中包含zcwyou的文件
[[email protected] ~]# find . -type f -path "*zcwyou*"2.5 Linux根據搜索深度查找文件
搜索當前目錄下所有以txt后綴結尾的文件,不包括子目錄 。
[[email protected] ~]# find . -maxdepth 1 -name "*.txt"相對應的,也是mindepth選項 。
[[email protected] ~]# find . -mindepth 2 -maxdepth 2 -name "*.png"2.6 Linux使用`find`命令根據文件大小搜索文件
通過-size來過濾文件尺寸 。支持的文件大小單元如下
– b 表示塊(512字節)
– c 表示字節
– w 表示字(2字節)
– k 表示千字節
– M 表示兆字節
– G 表示吉字節
比如,使用find命令搜索當前目錄下文件大小超過100M的文件
[[email protected] ~]# find . -type f -size +100M 2.7 根據文件的訪問、修改、變化時間全局搜索文件
支持下面的時間類型 。
訪問時間(-atime/天,-amin/分鐘):用戶最近一次訪問時間 。修改時間(-mtime/天,-mmin/分鐘):文件最后一次修改時間 。變化時間(-ctime/天,-cmin/分鐘):文件數據元(例如權限等)最后一次修改時間 。
全局查找的案例1:搜索1天內被修改過的文件
[[email protected] ~]# find . -type f -mtime -1全局查找的案例2:搜索最近1周內被訪問過的文件
[[email protected] ~]# find . -type f -atime -7將日志目錄里超過一周的日志文件,移動到/tmp/log里 。
[[email protected] ~]# find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/log ;注意:{} 用于與-exec選項結合使用來匹配所有文件,然后會被替換為相應的文件名 。
另外,;用來表示命令結束,如果沒有加,則會有如下提示
find: -exec: no terminating “;” or “+”
關于find命令更多的使用方法請參考本站的另一帖
Linux find命令查找文件34個實用案例
根據文件的訪問、修改、變化時間全局搜索文件
3. Linux使用`locate`命令全局搜索文件
locate命令在系統的全局范圍內查找 。
一般使用格式:
locate <-option> <filetype>-option:指定參數 。
-filetype:想要查找的文件類型 。
locate常用參數
-d:指定要查找的數據庫路徑
-h: 顯示輔助訊息
-i:忽略大小寫
-q:安靜模式,不會顯示任何錯誤訊息 。
-n:至多顯示 n個輸出 。
-r: 使用正規運算式 做尋找的條件 。
-o: 指定資料庫存的名稱 。
-V: 顯示程式的版本訊息
簡單的使用案例:
[[email protected] ~]# locate abc.txt/usr/share/123/456/abc.txt
提示
locate是從數據庫中讀取數據,而不是從文件系統中讀取 。從數據庫中讀取時是讀取updatedb命令返回的結果:所以在使用locate命令前,先手動運行updatedb命令(需要root權限),非root用戶可以借助sudo取得root權限:
而updatedb命令默認是一天(24小時)才自動運行一次,這就意味著如果是最新創建的文件,使用locate命令可能查找不到 。
[[email protected] ~]# updatedb
Linux使用locate命令全局搜索文件
4. Linux使用`grep`命令對文本文件進行全局搜索關鍵字
和find及locate命令不同的是,grep命令是在指定文件中搜索特定的內容,然后將包含有這些匹配內容的行輸出到標準輸出 。如果不指定文件名,則從標準輸入讀取內容 。grep命令經常和find等命令結合使用,其中grep常充當“過濾器”的角色 。
grep命令常用參數
-c: 只輸出匹配行的行數 。
-h: 查詢多文件時不顯示文件名 。
-I: 不區分大小寫(只適用于單字符) 。
-n: 顯示匹配的行和行號 。
-s: 不顯示 不存在或無匹配文本 的錯誤信息 。
-v: 反向匹配,即顯示不包含匹配文本的所有行 。
-R: 遞歸查詢,即連同子目錄中的文件一起查詢 。
使用案例:
在當前目錄下遞歸查找包含字符串”hello”的所有文件,并顯示匹配行的行號
格式:grep -Rn “搜索的關鍵字” ~
例如:
[[email protected] ~]# grep -Rn "www.linurumen.com" ~
Linux使用grep命令對文本文件進行全局搜索關鍵字
5. 使用`which`命令全局搜索linux程序文件
which命令將在PATH變量指定的路徑中 查找某個系統命令的位置,并且返回第一個搜索結果 。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令 。
例如,查看當前環境下使用的是哪個bash:
[[email protected] ~]# which passwd6. 使用`whereis`命令全局搜索linux程序文件
whereis命令用來定位二進制文件(參數-b)、源代碼文件(參數-s)和幫助手冊文件(即man文件,參數-m) 。如果省略參數,則返回所有信息 。
whereis命令使用案例
[[email protected] ~]# whereis bash7. 總結:
上面介紹的linux全局搜索命令有5個,每個都有特定的功能,每一個系統運維人員都要牢記和掌握它的使用方法,隨時能高效查找和搜索目標文件 。
- 公司搜索軟件 可以搜索企業信息的軟件
- centos遠程控制工具 linux遠程連接工具有哪些
- Linux常用工具 linux系統的幫助工具有哪些
- linux遠程登錄命令連接 linux遠程登錄命令是什么
- linux安裝zlib 安裝zlib報錯
- linux虛擬機串口 虛擬串口使用
- 搜索引擎查關鍵詞排名的軟件 搜索網站關鍵詞排名
- 優化淘寶產品搜索排名的方法 淘寶排名優化帝搜軟件
- 日本人用的搜索網站 盤點日本常用的50個網站
- ?wd=i,love,u,我的搜索框都在說愛你
