linux查找命令、find、grep总结
find 命令
?
語法:find 搜索路徑 匹配表達式
?
功能:該命令用于在指定路徑中查找符合條件的文件,搜索路徑可以是多個目錄,不同目錄之間以空格分隔
?
(1)匹配表達式1
?
???? -name filename:要查找的文件名。可以使用通配符“*”,“?”,但要用雙引號將文件名引起來
?
????????? 例子:root# find? –name? “h*”? –print
?
????????? 翻譯:在當前目錄下查找以h開頭的文件
?
????????? 例子:root# find? /? –name? host? -print
?
????????? 翻譯:在整個文件系統中查找名為hosts的文件
?
???? -user username:查找屬于username用戶的文件
?
????????? 例子:root# find /home –user user1 –print
?
????????? 翻譯:找出/home下屬于用戶user1的所有文件
?
???? -group groupname:查找屬于groupname組的文件
?
???? -print:顯示找到文件路徑名
?
(2)匹配表達式2
?
???? -exec 命令 {}:對找到的匹配文件,執行所列出的命令,而不詢問用戶是否執行這些命令,參數{} 由find找到當前的文
件路徑名取代,命令行末尾必須有“\;”。
?
例子:root# find /home –user user1 –exec cat {}\;|more
?
翻譯:找出/home下屬于用戶user1的所有文件并顯示其內容
?
例子:root# find /home –user user1 –exec rm –r {} \;
?
翻譯:找出/home下屬于用戶user1的所有文件并刪除
?
?????? -ok 命令{}:與-exec的用法相同,在執行命令之前詢問用戶是否要執行命令
?
(3)匹配表達式3
?
????? -atime n:查找前n天訪問過的文件(僅第n天這一天)
?
????? -atime +n:查找前n天之前訪問過的文件;-n則表示前n天之后
?
????????? 例子:root# find /home –atime +365 –print
?
????????? 翻譯:找出用戶一年前訪問過的文件
?
例子:root# find $home –user user1 –atime +3 –exec rm –r {} \;
?
翻譯:找出用戶user1主目錄下屬于自己的前3天之前訪問過文件并刪除
?
(4)匹配表達式4
?
?????????? -type filetype:指定查找的文件類型
?
filetype 可以是:b塊文件;c字符設備文件;d目錄文件;f一般文件
?
?????????? 例子:root# find –type d –print
?
????? 翻譯:查找當前目錄下的所有的子目錄
?
????? 例子:root# find –type f –print
?
????? 翻譯:查找當前目錄下的所有的普通文件
?
(5)匹配表達式5
?
??????? -size Number和-size Numberc:按照文件大小進行查找。Numberc表示以字節為單位,否則以塊(一般是512字節)為單位
。-Number(或-Numberc)表示查找比該值小的文件,+Number(或-Numberc)表示查找比該值大的文件
?
例子:root# find –size -10 –print
?
翻譯:查找當前目錄下所有長度小于10塊的文件
?
例子:root# find –size -10c –print | ls –l
?
翻譯:查找當前目錄下所有長度小于10字節的文件并以長格式顯示文件信息
?
例子:root# find –size +100 –size -200 –exec ls –s {} \;
?
翻譯:在當前目錄下查找100~200塊長的文件并顯示文件的實際塊數
?
grep 命令
?
語法:grep【參數】 查找模式 文件名 【文件名】
?
功能:grep命令用于在指定文件中查找與模式匹配的行,并將匹配的行顯示在標準輸出上。如果沒有指定文件,則從標準輸入中讀
取。當在多個文件中進行查找中,將在每一行輸出之前加上文件名。在搜索的文件名中允許使用通配符。
?
參數:
?
???????? -c:只顯示匹配行的行數
?
??? -i:匹配時不區分大小寫,默認情況下匹配時區分大小寫
?
??? -h:在多個文件中查找時,輸出行前不顯示文件名
?
??? -n:在輸出前加上匹配串所在行的行號(文件首行行號為1)
?
??? -v:只顯示不包含匹配串的行。
?
??? -f filename:從指定文件中獲取搜索模式,每行一個搜索模式項
?
例子:root# grep printf*.c
?
翻譯:在當前目錄下的所有C文件中查找printf字符串
?
例子:root# grep user1 /ect/password
?
翻譯:將系統帳號中文件包含user1的行顯示出來。
?
當搜索模式中包含空格是,要把搜索模式用單引號括起來。
?
例子:root# cat > dialog
?
????? your name is:
?
????? linux
?
????? <Ctrl+d>
?
????? root# grep ‘your name’dialog
?
?????? your name is:
?
在有多個搜索模式時,可以將這些搜索模式寫入文件中,利用-f參數從文件中讀取搜索模式項。
?
例子:root# cat > mode.txt
?
????? name
?
????? lin*
?
???? <Ctrl+d>
?
???? root# grep –f mode.txt dialog
?
????? your name is:
?
????? linux
轉載于:https://blog.51cto.com/tiger2020/1535438
總結
以上是生活随笔為你收集整理的linux查找命令、find、grep总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: D3D9 effect (hlsl)(转
- 下一篇: FireEye:2012年下半年高级威胁