find 命令
文法:find 搜尋路徑 匹配運算式
功能:該命令用於在指定路徑中尋找合格檔案,搜尋路徑可以是多個目錄,不同目錄之間以空格分隔
(1)匹配運算式1
-name filename:要尋找的檔案名稱。可以使用萬用字元“*”,“?”,但要用雙引號將檔案名稱引起來
例子:【root@localhost tmp】# find –name “h*” –print
翻譯:在目前的目錄下尋找以h開頭的檔案
例子:【root@localhost tmp】# find / –name host -print
翻譯:在整個檔案系統中尋找名為hosts的檔案
-user username:尋找屬於username使用者的檔案
例子:【root@localhost tmp】# find /home –user user1 –print
翻譯:找出/home下屬於使用者user1的所有檔案
-group groupname:尋找屬於groupname組的檔案
-print:顯示找到檔案路徑名
(2)匹配運算式2
-exec 命令 {}:對找到的匹配檔案,執行所列出的命令,而不詢問使用者是否執行這些命令,參數{} 由find找到當前的檔案路徑名取代,命令列末尾必須有“\;”。
例子:【root@localhost tmp】# find /home –user user1 –exec cat {}\;|more
翻譯:找出/home下屬於使用者user1的所有檔案並顯示其內容
例子:【root@localhost tmp】# find /home –user user1 –exec rm –r {} \;
翻譯:找出/home下屬於使用者user1的所有檔案並刪除
-ok 命令{}:與-exec的用法相同,在執行命令之前詢問使用者是否要執行命令
(3)匹配運算式3
-atime n:尋找前n天訪問過的檔案(僅第n天這一天)
-atime +n:尋找前n天之前訪問過的檔案;-n則表示前n天之後
例子:【root@localhost tmp】# find /home –atime +365 –print
翻譯:找出使用者一年前訪問過的檔案
例子:【root@localhost tmp】# find $home –user user1 –atime +3 –exec rm –r {} \;
翻譯:找出使用者user1主目錄下屬於自己的前3天之前訪問過檔案並刪除
(4)匹配運算式4
-type filetype:指定尋找的檔案類型
filetype 可以是:b塊檔案;c字元裝置檔案;d目錄檔案;f一般檔案
例子:【root@localhost tmp】# find –type d –print
翻譯:尋找目前的目錄下的所有的子目錄
例子:【root@localhost tmp】# find –type f –print
翻譯:尋找目前的目錄下的所有的普通檔案
(5)匹配運算式5
-size Number和-size Numberc:按照檔案大小進行尋找。Numberc表示以位元組為單位,否則以塊(一般是512位元組)為單位。-Number(或-Numberc)表示尋找比該值小的檔案,+Number(或-Numberc)表示尋找比該值大的檔案
例子:【root@localhost tmp】# find –size -10 –print
翻譯:尋找目前的目錄下所有長度小於10塊的檔案
例子:【root@localhost tmp】# find –size -10c –print | ls –l
翻譯:尋找目前的目錄下所有長度小於10位元組的檔案並以長格式顯示檔案資訊
例子:【root@localhsot tmp】# find –size +100 –size -200 –exec ls –s {} \;
翻譯:在目前的目錄下尋找100~200塊長的檔案並顯示檔案的實際塊數
grep 命令
文法:grep【參數】 尋找模式 檔案名稱 【檔案名稱】
功能:grep命令用於在指定檔案中尋找與模式比對的行,並將匹配的行顯示在標準輸出上。如果沒有指定檔案,則從標準輸入中讀取。當在多個檔案中進行尋找中,將在每一行輸出之前加上檔案名稱。在搜尋的檔案名稱中允許使用萬用字元。
參數:
-c:只顯示匹配行的行數
-i:匹配時不區分大小寫,預設情況下匹配時區分大小寫
-h:在多個檔案中尋找時,輸出行前不顯示檔案名稱
-n:在輸出前加上匹配串所在行的行號(檔案首行行號為1)
-v:只顯示不包含匹配串的行。
-f filename:從指定檔案中擷取搜尋模式,每行一個搜尋模式項
例子:【roo@locallost user1】# grep printf*.c
翻譯:在目前的目錄下的所有C檔案中尋找printf字串
例子:【roo@locallost user1】# grep user1 /ect/password
翻譯:將系統帳號中檔案包含user1的行顯示出來。
當搜尋模式中包含空格是,要把搜尋模式用單引號括起來。
例子:【root@localhso user1】# cat > dialog
your name is:
linux
<Ctrl+d>
【root@localhost user1】# grep ‘your name’dialog
your name is:
在有多個搜尋模式時,可以將這些搜尋模式寫入檔案中,利用-f參數從檔案中讀取搜尋模式項。
例子:【root@localhost user1】# cat > mode.txt
name
lin*
<Ctrl+d>
【root@localhost user1】# grep –f mode.txt dialog
your name is:
linux
摘自 youngerhao的專欄