centos使用find和grep命令
作為一個ITer需要竟要使用到命令行,find和grep命令了解非常必要,下面說些常用方法
find
查找文件
find ./ -name 192.168.1.166_server_log #根據文件名查找
find . -type f -name "*.phtml" #根據文件後綴查找
查找目錄
find / -type d -name games
根據文件權限查找
find . -type f -perm 0777 -print #輸出權限是777的文件
find / -type f ! -perm 777 #找出所有權限不是777的文件
find / -type f -perm 0777 -print -exec chmod 644 {} \; #把所有777權限文件改為644權限
-perm -2 如果xxx全面是“-”表示other必須包含寫權限,“+”表示其中u,g,o任何地方包含即可
find / -type f -perm -2 -o -perm -20 | xargs ls -al 查看所有other權限包含2或者group包含2權限的文件
根據文件的創建和修改時間
mtime 修改時間
ctime 創建時間
atime 訪問時間
find / -mtime 50 #查找修改文件日期為50天的文件
find / -mtime +50 –mtime -100 #查找文件修改時間大於50天小於100天的文件
根據文件大小查找
find / -size +50M -size -100M #查找文件大於50M小於100M的文件
find ./ -mmin -60 #60分鐘內的
find /home -name tmp.txt -maxdepth 4 #列出/home內的tmp.txt 查時深度最多為3層
find -empty
查找條件邏輯關系(and|or)
-a 表示條件間的並關系
-o表示條件的或關系
find /var/www/html/ -type f -print|xargs grep -l zabbix_logo 查找指定目錄含有zabbix_logo字段的文件
grep
grep -n ‘word‘ aaa.txt #顯示匹配到關鍵字內容行號 grep -w "word" xxxx.txt #-w指定的字符的完整單詞 grep -e aaa -e bbbb a.txt #過濾“txt”裏面帶有aaa和bbb的行
grep過濾後顯示正則匹配到部分
過濾出“IP:port”這樣的字符串 grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}\:[0-9]{1,4}" /tmp/ip.data >/tmp/proxy.txt
裏面正則是這樣寫的
(匹配0-9的數字1~3次後面是“.”)前面這段重復3次,後面繼續是(匹配0-9的數字1~3次)
後面加“:”,(匹配0-9的數字1~4次)
grep過濾關鍵字的上下一定範圍
grep -C 5 ‘myword‘ pdo.php 查找包含myword及其上下5行內容 grep -A 5 ‘myword‘ pdo.php 包含myword的行和它下面的5行 grep -B 5 ‘myword‘ pdo.php 包含myword的行和它上面的5行
本文出自 “運維之我的歷程” 博客,請務必保留此出處http://nginxs.blog.51cto.com/4676810/1922752
centos使用find和grep命令