Linux find grep 正則 通配

2021-10-05 22:45:50 字數 3983 閱讀 2849

grep

find在指定目錄下查詢檔案。匹配檔名

-amin 查詢 在指定時被 訪問過的檔案或目錄(分鐘)【cmin,mmin】

-atime 查詢在指定時間訪問過的檔案或目錄 () 【ctime,mtime】

-expty:尋找檔案大小為0 byte的檔案,或目錄下沒有任何子目錄或檔案的空目錄;

-name 按照檔名搜尋

-iname 按照檔名搜尋,不區分大小寫

-inum 按照inode 號搜尋

-size [+ | - ] 按照指定大小搜尋

* linux中檔案有訪問時間 (**atime**),資料修改時間 (**mime**) ,狀態修改時間 (**ctime**),這三個時間。我們可以用這三個時間來搜尋相關檔案
這三個時間的區別我們在stat命令中可以檢視到,重點說說 【+ - 】時間的含義

* -5 :代表 5 天內修改的檔案。

* 5 : 代表前 5~6 天那一天修改的檔案

* +5 :代表 6 天前修改的檔案。

* 畫乙個時間軸來解釋一下

-perm /許可權模式 根據許可權查詢: -perm [/|-]mode

mode:精確許可權匹配;

/mode:任何一類使用者(u,g,o)的許可權中的任何一位(r,w,x)符合條件即滿足;9位許可權之間存在「或」關係;

-mode:每一類使用者(u,g,o)的許可權中的每一位(r,w,x)同時符合條件即滿足;9位許可權之間存在「與」關係;

* -type d 			查詢目錄

* -type f 查詢普通 檔案

* -type l 查詢軟鏈結檔案

* > 根據檔案的型別查詢:

-type type:

f: 普通檔案

d: 目錄檔案

b:塊裝置 檔案

c:字元裝置檔案

p:管道檔案

s:套接字檔案

* -a  	and 邏輯 與

* -o or 邏輯或

* -not 或 ! not邏輯非

>find / -size +2k -a -type f

> 在根目錄下搜尋大於2kb,並且是普通的檔案.

find /home -type f -name "*.txt"

# 查詢/home 目錄下的所有 .txt 的檔案

# iname >>就是不區分大小寫 txt也是能查詢

find /home -perm /744

# 查詢 /home 目錄下 許可權(u g o ) 三個許可權位中起碼其中乙個滿足 (r w x )==>744(rwx r-- r-- )

find /home -name "*.txt" -o -name "*.pdf"

#查詢 /home 目錄下 .txt 檔案或.pdf 的檔案 [-a]邏輯與同理

find /home -type f -atime -7

# 查詢 7天內被訪問過的檔案

# ctime / mtime / amin / cmin /min /+7 /7 ....

find /home -user mac -exec chown tom \;

# 查詢 /home 目錄下的所有者是mac 的檔案 然後把查詢的檔案作為引數

# 全部交給 exec後面的命令 來執行,即 chown 改變所有者為tom

find /home -name "*.txt" -type f -exec cp

/tmp \;

# 查詢/home目錄下所有.txt 的檔案,然後全部複製到 /tmp 下

find ~ -perm -o=r

# 查詢 家目錄中對所有人可讀的檔案.

grep [選項] 「搜尋內容」 檔名

grep -a 2 「a」 test

表示 顯示 匹配到 包含 a 的行並顯示 其後面的 2 行

grep -e "a" -e "1"  -e  "2"

test

引數解釋

^匹配行首

$匹配行尾

[ ] or [ n-n ]

匹配 [ ] 內任意乙個字元

.匹配任意的單字元

*匹配其前乙個字元任意次 包括 0 次

\轉義符 屏敝原字元的特殊意義

\?匹配其前面的字元 0 次或 1 次 即前面可以可無

\+匹配其前面的字元 1 次或 多 次 即前面字元至少出現 一次

\匹配前面的字元 m 次

\匹配前面的字元 至少 m 次 至多 n 次

[root@localhost jxls]

lstest test1

[root@localhost jxls]

cat -n test

1 a2 bc

3 def

4 ght12

5 abc999

6 tydvl658

7 123

8 456

9 789abc

10 55.66

[root@localhost jxls]

grep -n --color "33*"

test

7:123

[root@localhost jxls] 這個3* 即指匹配 3 這個字元 0 次或 多 次

[root@localhost jxls]

grep -n --color "^a"

test

1:a5:abc999

[root@localhost jxls] 上例 :匹配行首為 a 開頭的

[root@localhost jxls] 同理 $

[root@localhost jxls]

grep -n --color "3$"

test

7:123

[root@localhost jxls]

grep -n --color "a^ \| [0-9]$"

test

[root@localhost jxls]

grep -n --color "a^ \| [0-9]"

test

[root@localhost jxls]

echo bbb >>

test

[root@localhost jxls]

grep -n "[0-9]\|b\"

test

2:bc

4:ght12

5:abc999

6:tydvl658

7:123

8:456

9:789abc

10:55.66

11:bbb

[root@localhost jxls]

grep -n "[0-9]\|b\"

test

4:ght12

5:abc999

6:tydvl658

7:123

8:456

9:789abc

10:55.66

11:bbb

參考:

linux find grep組合使用

1.查詢所有 h 檔案 find path name h 2.查詢所有 h 檔案中的含有 helloworld 字串的檔案 find path name h exec grep in helloworld find path name h xargs grep in helloworld 3.查詢所...

linux find grep組合使用

顯示檔名 find name jsp exec grep with filename in 人保 1.查詢所有 h 檔案 find path name h 2.查詢所有 h 檔案中的含有 helloworld 字串的檔案 find path name h exec grep in helloworl...

Linux 正則 擴充套件正則

基礎正規表示式 以什麼什麼開頭 m 以什麼什麼結尾 m 還表示空行,或空格,可以用cat an 試一下 空行 什麼符號都沒有 表示任意 乙個字元 轉義字元不解析特殊符號的含義 n 相當於回車鍵 t 相當於tab鍵 表示前乙個字元連續出現了0次或0次以上 表示任意字元,包括空行,正規表示式表示所有或連...