文章目錄
- 1. find命令
- 1.1 基本語法
- 1.2 實體
- 1.3 find與-exec、xargs
- 2.管道符(|)
- 3.grep命令
- 3.1 基本語法
- 3.2 實體
find命令用于在目錄中匹配檔案,grep命令用于在檔案中匹配關鍵詞
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)$”
搜索大于(小于/等于)10K的檔案并洗掉
find . -type f -size +(-/空)10k -delete
搜索權限不為777的檔案 按執行權限來查找
find . -type f ! -perm 777
搜索tom的所有檔案
find . -type f -user tom
最后10min 訪問的檔案
find /home -amin -10
最近兩天訪問的檔案
find /home -atime -2
5min里修改過的檔案
find / -mmin -5
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) {} ;

- 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/1353.html
標籤:其他
上一篇:SElinux概念及其相關配置
