Linux經常使用命令(二)_搜索類命令find、grep

find命令用於在目錄中匹配文件,grep命令用於在文件中匹配關鍵詞linux

1. find命令

1.1 基本語法

find [搜索範圍] [option]正則表達式

option種類 功能
-name<查詢方式> 按照指定的文件名查找模式查找文件
-user<用戶名> 查找屬於指定用戶名全部文件
-size<文件大小> 按照指定的文件大小查找文件
-perm<755> 按照文件權限查找文件
-mtime -n +n 按照文件的更改時間查找文件。 -n表示距如今n天之內,+n表示距如今n天前
-type<文件類型> 表示查找某一類型的文件 b\d\c\p\l\f

1.2 實例

find . -name 「* .txt」
find . -iname 「.txt」
find /usr/ -path ‘* local* ’
find . -regex 「.*(.txt|.pdf)$」


shell

搜索大於(小於/等於)10K的文件並刪除
find . -type f -size +(-/空)10k -delete
express

搜索權限不爲777的文件 按執行權限來查找
find . -type f ! -perm 777
安全

搜索tom的全部文件
find . -type f -user tom
工具

最後10min 訪問的文件
find /home -amin -10
spa

最近兩天訪問的文件
find /home -atime -2
.net

5min裏修改過的文件
find / -mmin -5
regexp

1.3 find與-exec、xargs

  • find與-exec

-exec 執行該參數所給出的shell命令。相應的命令形式爲「command」 {} ; {} 與;有空格。
find . -type f -user root -exec chown tom {} ;
在這裏插入圖片描述
-ok 安全模式執行shell命令。-ok和-exec行爲同樣,不過它會給出提示,是否執行相應的操做。
find . -name " *.txt" -ok rm (http://man.linuxde.net/rm) {} ;
在這裏插入圖片描述




blog

  • find與xargs

在使用find命令的-exec選項處理匹配到的文件時, find命令將全部匹配到的文件一塊兒傳遞給exec執行。但有些系統對可以傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘以後,就會出現溢出錯誤。錯誤信息一般是「參數列太長」或「參數列溢出」。這就是xargs命令的用處所在,特別是與find命令一塊兒使用。

find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是所有,不像-exec選項那樣。這樣它能夠先處理最早獲取的一部分文件,而後是下一批,並如此繼續下去。

用grep命令在全部的普通文件中搜索hostname這個詞
find . -type f -print | xargs grep 「hostname」

刪除文件大小爲零的文件
find ./ -size 0 | xargs rm -f & 刪除文件大小爲零的文件

2.管道符(|)

做用:將前面命令的標準輸出做爲後面命令的標準輸入

3.grep命令

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

3.1 基本語法

grep 關鍵詞 [文件/目錄] [option]

option種類 功能
-c / --count 只打印匹配的行數,不顯示匹配的內容
-f File / --file=File 從文件中提取模板
-i / --ignore-case 忽略大小寫
-l / --files-with-matches 打印匹配模板的文件清單
-L / --files-without-match 打印不匹配模板的文件清單
-n / --line-number 在匹配的行前面打印行號。
-w,–word-regexp 若是被<和>引用,就把表達式作爲一個單詞搜索

3.2 實例

在多個文件中查找包含「test_text」的文本行,標記並返回。
grep 「test_text」 file_1 file_2 —color=auto
在這裏插入圖片描述
-E:正則匹配 -o: 只輸出 文件中匹配到的部分。
grep -o -E 「[a-c]+」 或 egrep 「[a-c]+」
在這裏插入圖片描述
-c:統計文件和文本中包含匹配字符串的行數
grep -c test_text/「test_text」 file_1 file_2






-r:遞歸搜索 -n:顯示關鍵詞在文件的第幾行
grep 「test_text」 . -r -n 在多級目錄中對文本進行遞歸搜索。

-i 忽略大小寫 -n 顯示搜索字符所在行數。
grep -i HELLO -n text1
在這裏插入圖片描述

-e 制動多個匹配樣式
grep -e 「only」 -e 「hello」 -o -n text1
在這裏插入圖片描述 只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’) grep -w pattern files

相關文章
相關標籤/搜索