系統學習 萬用字元及find命令

2021-10-02 18:55:43 字數 3541 閱讀 7326

二、find命令

萬用字元: 是shell在做匹配的時候會用到,一般用於匹配檔名

它是由shell進行解析的,比如 find ls cp 等等命令都可以配合著萬用字元一起使用

* : 匹配0或者多個字元 

?: 匹配任意1個字元

[list]: 匹配list中任意單個字元

[c1-c2]: 匹配c1-c2中任意單個字元

[^c1-c2]: 不匹配c1-c2中任意單個字元

: 匹配{}中任意單個字元

[root@test tmp]

# touch 1.txt 11.txt 111.txt

[root@test tmp]

# ll

total 0

-rw-r--r--. 1 root root 0 feb 8 06:34 111.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 11.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 1.txt

[root@test tmp]

# ll *.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 111.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 11.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 1.txt

[root@test tmp]

# ll 1?.txt

-rw-r--r--. 1 root root 0 feb 8 06:34 11.txt

匹配條件:

1. *

2. ?.txt

3. [123]1.txt --> 11.txt 21.txt 31.txt

4. [1-9].txt --> 1.txt 2.txt … 9.txt

5. [^a-z].txt --> 除了a.txt … z.txt檔案

6. .txt --> a.txt b.txt c.txt檔案

ifs : //cr: = :設定變數

$ : 獲取變數

>< : 重定向

| : 管道

& : 後台執行命令

() : 在子shell中執行命令/運算或命令替換等

{}: 函式中執行/變數替換的範圍定界

|| : 命令結束後,若為false,繼續執行下乙個命令

! : 非

# :注釋

\ : 轉義

硬轉義: 內部所有shell元字元、萬用字元等 都會被關閉掉  ' '

軟轉義: 內部所有shell元字元、萬用字元等 都正常生效 " "

案例:

[root@test test1]

# a=1

[root@test test1]

# echo '$a'

$a[root@test test1]

# echo "$a"

1

實時查詢工具,通過遍歷指定路徑下的檔案系統完成檔案查詢

[root@test tmp]

# find --help

usage: find

[-h]

[-l]

[-p]

[-olevel]

[-d help

|tree|search|

stat

|rates|opt|exec]

[path...]

[expression]

find [選項] [路徑] [查詢條件 + 處理動作]

路徑: 指定具體目錄路徑,預設是當前資料夾

查詢條件: 指定查詢的標準(檔名/大小/檔案型別/許可權等等),預設是找出所有檔案

處理動作: 對符合條件的檔案做什麼操作,預設是輸出螢幕

[root@test tmp]

# find ./ -name "1[123].txt"

[root@test tmp]

# find /tmp \( -not -user root -a -not -name "fstab" \)

注意:因為識別問題後面的條件要加 ( ) ,即小括號並轉義。

[root@test tmp]

# find / -size +10m

-print: 預設處理動作,顯示至螢幕上

-ls: 類似於對查詢到的檔案執行 ls -l 命令

-delete: 刪除查詢到的檔案

-fls /path/to/somefile : 查詢到的所有檔案的長格式資訊儲存至指定檔案中

-ok command {} \ :

對查詢到的每個檔案執行由command指定的命令

{}: 用於引用查詢到的檔名稱自身

互動式,每個檔案執行命令前會讓使用者確定

-exec command {} \:

對查詢到的每個檔案執行由command指定的命令

{}: 用於引用查詢到的檔名稱自身

例項1: 對/tmp目錄下所有屬主為root使用者的檔案修改其屬主為zhangsan

[root@test tmp]

# find /tmp -user root -ok chown zhangsan: {} \;

這裡 {} \ 之間要有空格

例項2: 對/tmp目錄下所有屬主為zhangsan使用者或者屬主為zhangsan的檔案修改其為root:root

[root@test tmp]

# find /tmp -user zhangsan -o -group zhangsan -exec chown root:root {} \;

注意:find傳遞查詢到的檔案至後面指定的命令時,查詢到所有符合條件的檔案一次性傳遞給後面的命令;

另一種 方式可規避此問題 find | xargs command

等同於上面例項2的操作

[root@test tmp]# find /tmp -user zhangsan -o -group zhangsan | xargs chown root:root

查詢/var目錄下屬主為root,且屬組為mail的所有檔案或目錄

查詢/usr目錄下不屬於root,bin或hadoop的所有檔案或目錄

查詢/etc目錄下周一內容曾被訪問過的檔案或目錄

查詢當前系統上沒有屬主或屬組,且近一周內曾被訪問過的檔案或目錄

查詢/etc目錄下大於1m且型別為普通檔案的所有檔案或目錄

查詢/etc目錄下所有使用者都沒有寫許可權的檔案

查詢/etc目錄下至少一類使用者沒有執行許可權的檔案

查詢/etc/init.d目錄下,所有使用者都執行許可權,且其它使用者寫許可權的檔案

Linux系統學習(2) 系統狀態檢查命令

linux系統狀態檢查命令 為了了解linux系統的執行狀態,有以下命令能夠檢視系統狀態 學習資料為 linux就該這麼學 ifconfig命令 該命令常用於獲取網絡卡配置與網路狀態等資訊,格式為 ifconfig 網路裝置 引數 主要檢視網絡卡名稱 inet引數後面的ip位址 ether引數後面的...

Ubuntu系統學習

分割槽 檔案系統型別 預設為 ext4,檔案系統分很多種,ext2 ext3 ext4 fat ntfs等等 什麼是檔案系統 檔案系統是作業系統用於明確磁碟或分割槽上的檔案的方法和資料結構 即在磁碟上組織檔案的方法。兩種檔案系統的對比 linux目錄結構 所有目錄都在 boot boot 配置檔案 ...

系統學習 css

1 css載入過程 瀏覽器對多個樣式 進行疊加,把各個零散的整合成乙個整體,讓後者覆蓋前者 important有最高執行權 瀏覽器載入html dom樹 無樣式變化 瀏覽器載入css 渲染檢視樣式 2 css與html如何結合 選擇器 important id class tag 標籤選擇器 選擇器...