国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux中強大且常用命令:find、grep

系統(tǒng) Linux 系統(tǒng)運維
在linux下面工作,有些命令能夠大大提高效率。本文就向大家介紹find、grep命令,他哥倆可以算是必會的linux命令,我?guī)缀趺刻於家玫剿麄儭?/div>

[[185710]]

在linux下面工作,有些命令能夠大大提高效率。本文就向大家介紹find、grep命令,他哥倆可以算是必會的linux命令,我?guī)缀趺刻於家玫剿麄儭1疚慕Y構如下:

  • find命令
    • find命令的一般形式
    • find命令的常用選項及實例
    • find與xargs
  • grep命令
    • grep命令的一般形式
    • grep正則表達式元字符集(基本集)
    • grep命令的常用選項及實例

1、find命令

find命令是一個無處不在命令,是linux中最有用的命令之一。find命令用于:在一個目錄(及子目錄)中搜索文件,你可以指定一些匹配條件,如按文件名、文件類型、用戶甚至是時間戳查找文件。下面就通過實例來體驗下find命令的強大。

1.1、find命令的一般形式

man文檔中給出的find命令的一般形式為:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]

其實[-H] [-L] [-P] [-D debugopts] [-Olevel]這幾個選項并不常用(至少在我的日常工作中,沒有用到過),上面的find命令的常用形式可以簡化為:

find [path…] [expression]

  • path:find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統(tǒng)根目錄
  • expression:expression可以分為——“-options [-print -exec -ok …]”
  • -options,指定find命令的常用選項,下節(jié)詳細介紹
  • -print,find命令將匹配的文件輸出到標準輸出
  • -exec,find命令對匹配的文件執(zhí)行該參數所給出的shell命令。相應命令的形式為’command’ { } ;,注意{ }和;之間的空格

find ./ -size 0 -exec rm {} ; 刪除文件大小為零的文件 (還可以以這樣做:rm -i find ./ -size 0 或 find ./ -size 0 | xargs rm -f &)

為了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec選項中:find . -type f -exec ls -l { } ;

在/logs目錄中查找更改時間在5日以前的文件并刪除它們:find /logs -type f -mtime +5 -exec rm { } ;

  • -ok,和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數所給出的shell命令,在執(zhí)行每一個命令之前,都會給出提示,讓用戶來確定是否執(zhí)行。

find . -name “*.conf” -mtime +5 -ok rm { } ; 在當前目錄中查找所有文件名以.LOG結尾、更改時間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示

也有人這樣總結find命令的結構:

  1. find start_directory test 
  2.  
  3. options 
  4.  
  5. criteria_to_match 
  6.  
  7. action_to_perform_on_results 

 

1.2、find命令的常用選項及實例

  • -name

按照文件名查找文件。

find /dir -name filename 在/dir目錄及其子目錄下面查找名字為filename的文件

find . -name “*.c” 在當前目錄及其子目錄(用“.”表示)中查找任何擴展名為“c”的文件

  • -perm

按照文件權限來查找文件。

find . -perm 755 –print 在當前目錄下查找文件權限位為755的文件,即文件屬主可以讀、寫、執(zhí)行,其他用戶可以讀、執(zhí)行的文件

  • -prune

使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。

find /apps -path “/apps/bin” -prune -o –print 在/apps目錄下查找文件,但不希望在/apps/bin目錄下查找

find /usr/sam -path “/usr/sam/dir1” -prune -o –print 在/usr/sam目錄下查找不在dir1子目錄之內的所有文件

  • -user

按照文件屬主來查找文件。

find ~ -user sam –print 在$HOME目錄中查找文件屬主為sam的文件

  • -group

按照文件所屬的組來查找文件。

find /apps -group gem –print 在/apps目錄下查找屬于gem用戶組的文件

  • -mtime -n +n

按照文件的更改時間來查找文件, – n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。

find / -mtime -5 –print 在系統(tǒng)根目錄下查找更改時間在5日以內的文件

find /var/adm -mtime +3 –print 在/var/adm目錄下查找更改時間在3日以前的文件

  • -nogroup

查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。

find / –nogroup -print

  • -nouser

查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。

find /home -nouser –print

  • -newer file1 ! file2

查找更改時間比文件file1新但比文件file2舊的文件。

  • -type

查找某一類型的文件,諸如:

b – 塊設備文件。

d – 目錄。

c – 字符設備文件。

p – 管道文件。

l – 符號鏈接文件。

f – 普通文件。

find /etc -type d –print 在/etc目錄下查找所有的目錄

find . ! -type d –print 在當前目錄下查找除目錄以外的所有類型的文件

find /etc -type l –print 在/etc目錄下查找所有的符號鏈接文件

  • -size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節(jié)計。

find . -size +1000000c –print 在當前目錄下查找文件長度大于1 M字節(jié)的文件

find /home/apache -size 100c –print 在/home/apache目錄下查找文件長度恰好為100字節(jié)的文件

find . -size +10 –print 在當前目錄下查找長度超過10塊的文件(一塊等于512字節(jié))

  • -depth:在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。

find / -name “CON.FILE” -depth –print 它將首先匹配所有的文件然后再進入子目錄中查找

  • -mount:在查找文件時不跨越文件系統(tǒng)mount點。

find . -name “*.XC” -mount –print 從當前目錄開始查找位于本文件系統(tǒng)中文件名以XC結尾的文件(不進入其他文件系統(tǒng))

  • -follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。

1.3、find與xargs

在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之后,就會出現溢出錯誤。錯誤信息通常是“參數列太長”或“參數列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。

find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。

在有些系統(tǒng)中,使用-exec選項會為處理每一個匹配到的文件而發(fā)起一個相應的進程,并非將匹配到的文件全部作為參數一次執(zhí)行;這樣在有些情況下就會出現進程過多,系統(tǒng)性能下降的問題,因而效率不高;

而使用xargs命令則只有一個進程。另外,在使用xargs命令時,究竟是一次獲取所有的參數,還是分批取得參數,以及每一次獲取參數的數目都會根據該命令的選項及系統(tǒng)內核中相應的可調參數來確定。

來看看xargs命令是如何同find命令一起使用的,并給出一些例子。

find . -type f -print | xargs file 查找系統(tǒng)中的每一個普通文件,然后使用xargs命令來測試它們分別屬于哪類文件

find / -name “core” -print | xargs echo “” >/tmp/core.log 在整個系統(tǒng)中查找內存信息轉儲文件(core dump) ,然后把結果保存到/tmp/core.log 文件中:

find . -type f -print | xargs grep “hostname” 用grep命令在所有的普通文件中搜索hostname這個詞

find ./ -mtime +3 -print|xargs rm -f –r 刪除3天以前的所有東西 (find . -ctime +3 -exec rm -rf {} ;)

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

find命令配合使用exec和xargs可以使用戶對所匹配到的文件執(zhí)行幾乎所有的命令。

2、grep命令

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

2.1、grep命令的一般選項及實例

  1. grep [OPTIONS] PATTERN [FILE…] 
  2. grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…] 

 

grep命令用于搜索由Pattern參數指定的模式,并將每個匹配的行寫入標準輸出中。這些模式是具有限定的正則表達式,它們使用ed或egrep命令樣式。如果在File參數中指定了多個名稱,grep命令將顯示包含匹配行的文件的名稱。對 shell 有特殊含義的字符 ($, *, [, |, ^, (, ), ) 出現在 Pattern參數中時必須帶雙引號。

如果 Pattern參數不是簡單字符串,通常必須用單引號將整個模式括起來。在諸如 [a-z], 之類的表達式中,-(減號)cml 可根據當前正在整理的序列來指定一個范圍。整理序列可以定義等價的類以供在字符范圍中使用。如果未指定任何文件,grep會假定為標準輸入。

2.2、grep正則表達式元字符集(基本集)

^ 錨定行的開始 如:’^grep’匹配所有以grep開頭的行。

$ 錨定行的結束 如:’grep$’匹配所有以grep結尾的行。

. 匹配一個非換行符的字符 如:’gr.p’匹配gr后接一個任意字符,然后是p。

* 匹配零個或多個先前字符 如:’ *grep’匹配所有一個或多個空格后緊跟grep的行。 .*一起用代表任意字符。

[] 匹配一個指定范圍內的字符,如'[Gg]rep’匹配Grep和grep。

[^] 匹配一個不在指定范圍內的字符,如:'[^A-FH-Z]rep’匹配不包含A-F和H-Z的一個字母開頭,緊跟rep的行。

(..) 標記匹配字符,如:'(love)’,love被標記為1。

> 錨定單詞的結束,如’grep>’匹配包含以grep結尾的單詞的行。

x{m} 連續(xù)重復字符x,m次,如:’o{5}’匹配包含連續(xù)5個o的行。

x{m,} 連續(xù)重復字符x,至少m次,如:’o{5,}’匹配至少連續(xù)有5個o的行。

x{m,n} 連續(xù)重復字符x,至少m次,不多于n次,如:’o{5,10}’匹配連續(xù)5–10個o的行。

w 匹配一個文字和數字字符,也就是[A-Za-z0-9],如:’Gw*p’匹配以G后跟零個或多個文字或數字字符,然后是p。

W w的反置形式,匹配一個非單詞字符,如點號句號等。W*則可匹配多個。

b 單詞鎖定符,如: ‘bgrepb’只匹配grep,即只能是grep這個單詞,兩邊均為空格。

2.3、grep命令的常用選項及實例

-?

同時顯示匹配行上下的?行,如:grep -2 pattern filename同時顯示匹配行的上下2行。

-b,–byte-offset

打印匹配行前面打印該行所在的塊號碼。

-c,–count

只打印匹配的行數,不顯示匹配的內容。

-f File,–file=File

從文件中提取模板。空文件中包含0個模板,所以什么都不匹配。

-h,–no-filename

當搜索多個文件時,不顯示匹配文件名前綴。

-i,–ignore-case

忽略大小寫差別。

-q,–quiet

取消顯示,只返回退出狀態(tài)。0則表示找到了匹配的行。

-l,–files-with-matches

打印匹配模板的文件清單。

-L,–files-without-match

打印不匹配模板的文件清單。

-n,–line-number

在匹配的行前面打印行號。

-s,–silent

不顯示關于不存在或者無法讀取文件的錯誤信息。

-v,–revert-match

反檢索,只顯示不匹配的行。

-w,–word-regexp

如果被引用,就把表達式做為一個單詞搜索。

-V,–version

顯示軟件版本信息。

=====

ls -l | grep ‘^a’ 通過管道過濾ls -l輸出的內容,只顯示以a開頭的行。

grep ‘test’ d* 顯示所有以d開頭的文件中包含test的行。

grep ‘test’ aa bb cc 顯示在aa,bb,cc文件中匹配test的行。

grep ‘[a-z]’ aa 顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。

grep ‘w(es)t.*’ aa 如果west被匹配,則es就被存儲到內存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著另外一個es(),找到就顯示該行。如果用egrep或grep -E,就不用””號進行轉義,直接寫成’w(es)t.*’就可以了。

grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

參考文獻:

  • 關于Linux Grep命令使用的詳細介紹,http://fanqiang.chinaunix.net/system/linux/2007-03-15/5110.shtml
  • Linux文件查找命令find,xargs詳述,http://www.linuxsir.org/main/?q=node/137#1.1
  • man文檔(man find、man grep)
責任編輯:龐桂玉 來源: 程序猿
相關推薦

2014-07-25 10:55:36

Linux命令

2020-09-28 15:14:31

Linux常用命令實用命令

2009-12-22 14:47:24

Linux常用命令

2014-08-15 10:47:49

Linux命令

2014-08-13 09:29:15

linux

2011-03-16 10:07:00

2011-01-19 17:00:09

Postfix常用命令

2014-01-02 09:57:56

PostgreSQL命令

2018-11-09 09:21:55

Linux系統(tǒng)命令

2010-03-17 15:45:37

linux 常用命令

2011-01-06 14:22:50

2010-03-11 10:10:40

2023-10-31 16:17:42

2014-08-18 09:49:46

Linux

2010-03-29 10:16:39

CentOS常用命令

2010-03-19 10:08:01

linux 常用命令

2010-06-30 10:09:14

Linux系統(tǒng)備份

2023-12-22 15:23:04

Linux操作系統(tǒng)

2020-10-12 01:11:35

vimLinux命令

2022-08-23 12:21:50

Linux命令
點贊
收藏

51CTO技術棧公眾號

久久久久久国产免费| zzijzzij亚洲日本少妇熟睡| 日韩精品一区二区三区中文精品| av网站无病毒在线| 黄色成人精品网站| 黄色在线观看网站| 亚洲欧美日韩天堂一区二区| 国产精品无码免费专区午夜| 久久福利资源站| 日韩xxxx视频| 国产精品高潮呻吟| 91热爆在线观看| 色老头久久综合| 欧美一区二区三区电影在线观看| 欧美深夜福利| 婷婷六月国产精品久久不卡| 国产精品欧美精品| 国产成人三级视频| 国产精品麻豆欧美日韩ww| 免费男女羞羞的视频网站主页在线观看| 精品久久久视频| www欧美xxxx| 97热在线精品视频在线观看| 亚洲大片av| 蜜臀av一区二区在线免费观看| 免费电影一区| 日韩欧美国产免费| 蜜桃久久av一区| 中文av一区二区三区| 91久久免费观看| 日日夜夜综合| 九9re精品视频在线观看re6| av网站一区二区三区| 精品176二区| 97精品国产| 在线视频您懂的| 极品在线视频| 久久久久久亚洲精品不卡| 合欧美一区二区三区| 国产二区视频在线播放| 日韩欧美高清在线| 欧美在线视屏| 亚洲私人影吧| 国产女人18毛片水真多成人如厕| 羞羞小视频视频| 理论视频在线| 亚洲国产精品久久人人爱 | 亚洲不卡av不卡一区二区| 激情六月天婷婷| 欧美人狂配大交3d怪物一区 | 超碰超碰超碰超碰超碰| 亚洲久久久久久久久久| 视频一区视频二区视频| 日韩精品欧美国产精品忘忧草 | 在线不卡视频一区二区| 精品福利在线看| 欧美天天综合| 免费一级毛片在线观看| 91天堂在线观看| 色综合视频一区二区三区高清| 亚洲欧洲专区| 羞羞网站在线免费观看| 9色视频在线观看| 久久不射2019中文字幕| 黄色毛片在线观看| 国产精品亚洲综合| 精品国产自在久精品国产| 国产精品一区免费在线观看| 国产精品高潮久久| 日韩欧美国产片| 国产91在线|亚洲| 国产精品国产亚洲精品| 无需播放器亚洲| 亚洲精品一区二区三区樱花| 国产精品五月天| 91偷拍一区二区三区精品| 69成人在线| 爱情岛论坛成人| 国产成人亚洲欧美| 日韩经典一区二区三区| 久久天天做天天爱综合色| 在线免费高清一区二区三区| 中国china体内裑精亚洲片| 亚洲欧洲av色图| 日韩精品免费在线视频观看| 自拍偷拍精品| 高清日韩av电影| av在线观看地址| 亚洲aⅴ男人的天堂在线观看| 日韩久久精品电影| 亚洲夂夂婷婷色拍ww47| 国产伦精一区二区三区| 91亚洲人成网污www| 69av在线视频| 精品视频偷偷看在线观看| 免费看国产一级片| 精品国产一区二区三区在线观看| 亚洲成av人片一区二区三区| 成人视屏免费看| 久久黄色影院| 午夜在线视频观看日韩17c| 欧美国产美女| 国产一区二区三区天码| 中文字幕在线看| 欧美一区在线直播| 中文字幕亚洲电影| 韩国日本一区| 欧美一区二区三区成人| av今日在线| 日本一区二区不卡| 日韩成人一区二区| 波多野结衣在线中文| 一本一本大道香蕉久在线精品| 在线高清av| 国产精品v欧美精品v日韩精品| 麻豆久久久久久久| 黄色小视频在线免费观看| 国产一区二区黑人欧美xxxx| 激情欧美日韩| 成人羞羞国产免费网站| 欧美精品一区二区蜜臀亚洲| 国产农村妇女精品一二区| 日本不卡1区2区3区| 美日韩精品免费视频| 麻豆精品在线视频| 秋霞成人影院| 2022国产精品| ...av二区三区久久精品| 黄色免费在线看| 日本成人免费在线| 久久综合成人精品亚洲另类欧美| 三级网站视频在在线播放| 国产精品sss| 精品国产31久久久久久| 2021年精品国产福利在线| 久久精品成人一区二区三区蜜臀| 亚洲国产wwwccc36天堂| 二区三区精品| 轻点好疼好大好爽视频| 亚洲国产精品va在线看黑人| 日韩1区2区日韩1区2区| 中文字幕日本在线| 精品中文字幕人| 欧洲激情一区二区| 欧美激情一区| 91成人在线观看喷潮教学| 热99精品里视频精品| 日韩视频在线永久播放| 一区二区三区日韩欧美精品| 久久精品国产第一区二区三区| 日韩欧美成人网| 欧美天天在线| 秋霞午夜理伦电影在线观看| 精品一区二区三区国产| 91麻豆精品久久久久蜜臀| 青青草国产精品97视觉盛宴 | 精品在线一区二区| 欧美色网在线| wwwwxxxx日韩| 国产精品一区二区性色av| 一本到一区二区三区| 日本不卡的三区四区五区| 精品裸体bbb| 黄色三级电影网站| 成人在线看片| 日韩精品www| 国产精品伦一区二区三级视频| 日韩毛片视频| 黄色影院在线看| 国产xxxxx在线观看| 国产日韩欧美夫妻视频在线观看| 欧美精品一二三区| 99精品1区2区| 欧美日韩在线网站| www.久久久久.com| 免费看一级大黄情大片| 日韩av手机在线观看| 777午夜精品视频在线播放| 97精品电影院| 中文字幕亚洲综合久久五月天色无吗''| 99re6在线精品视频免费播放| 丰满少妇在线观看| 国产精品伊人日日| 久久精品色欧美aⅴ一区二区| 亚洲一区视频在线| 日日欢夜夜爽一区| 天美av一区二区三区久久| 欧美性猛片xxxxx免费中国| 色播五月综合网| 欧美成人综合一区| 久久久噜久噜久久综合| 欧美精品1区2区3区| 欧美国产亚洲另类动漫| 国产一区二区三区成人欧美日韩在线观看| 亚洲人体在线| 国产盗摄在线观看| 四虎4hutv紧急入口| 国产精品扒开腿做爽爽爽视频| 亚洲激情视频网| 欧美性xxxxxx|