Linux shell程式設計 find命令 學習

2021-10-25 20:19:40 字數 2874 閱讀 2079

linux shell程式設計 find命令 學習

介面美觀,內容詳細

01.  列出當前目錄以及子目錄下的所有檔案 

find

.02. 找到當前目錄下名字為11.png的檔案

find

. -name "11.png"

-o 是或者的意思 ----- or

-a 是而且的意思 ---- and

-not 是相反的意思 --- not

03. 找到當前目錄下的jpg檔案和png檔案

04. 找出當前目錄下不是以png結尾的檔案

find

.! -name "*.png"

find

. -not -name "*.png"

[a-z] // 匹配所有的小寫字母

[a-z] // 匹配所有的大寫字母

[a-za-z] // 匹配所有的字母

[0-9] // 匹配所有的數字

[0-9\.\-] // 匹配所有的數字,句號和減號

05. 根據正規表示式查詢

找到當前目錄下,檔名都是數字的png檔案。

find

. -regex "\./*[0-9]+\.png"

找到當前目錄下,檔名是數字字母的檔案。

find

. -regex "\./*[a-za-z0-9\_\.]+\.log"

./log20210508.log

./log20210508_100.log

./log20210508_1000.log

06. 根據路徑查詢

找出當前目錄下,路徑中包含abc的檔案/路徑。

find

. -path "*abc*"

find

. -name "*abc*"

如果當前 路徑有檔案

abc/abc1.txt

abc/abc2.txt

abc/

f 普通檔案

l 符號連線

d 目錄

c 字元裝置

b 塊裝置

s 套接字

p fifo

07. 通過-type進行檔案型別的過濾。

舉例,查詢當前目錄下,路徑中包含wysiwyg的檔案

find

. -type f -path "*abc*"

-maxdepth 最大深度

-mindepth 最小深度

08. 限制搜尋深度

找出當前目錄下所有的png,不包括子目錄。

find

. -maxdepth 1 -name "*.png"

找出第一級資料夾中包含log.2021-09-11 的檔案

找出第二級資料夾中包含log.2021-09-11 的檔案

find

. -maxdepth 1 -mindepth 1 -name "*log.2021-09-11*"

find

. -maxdepth 2 -mindepth 2 -name "*log.2021-09-11*"

b —— 塊(512位元組)

c —— 位元組

w —— 字(2位元組)

k —— 千位元組

m —— 兆位元組

g —— 吉位元組

09.根據檔案大小過濾

通過-size來過濾檔案尺寸。支援的檔案大小單元如下

舉例來說,找出當前目錄下檔案大小超過100m的檔案、大於100m 小於1g 的檔案

find

. -type f -size +100m

find

. -type f -size +100m -size -2g

訪問時間(-atime/天,-amin/分鐘):使用者最近一次訪問時間。

修改時間(-mtime/天,-mmin/分鐘):檔案最後一次修改時間。

變化時間(-ctime/天,-cmin/分鐘):檔案資料元(例如許可權等)最後一次修改時間。

10. 根據訪問/修改/變化時間

舉例,找出1天內被修改過的檔案

find

. -type f -mtime -1

找出最近1週內被訪問過的檔案

find

. -type f -atime -7

11. 根據許可權

通過-perm來實現。舉例,找出當前目錄下許可權為777的檔案

find

. -type f -perm 777

-user

-group

12. 根據檔案擁有者

找出檔案擁有者為root的檔案

find

. -type f -user root

找出檔案所在群組為root的檔案

find

. -type f -group root

通過-ok、和-exec來實現。區別在於,-ok在執行命令前,會進行二次確認,-exec不會。

13. 找到檔案後執行命令

看下實際例子。刪除當前目錄下所有的js檔案。

用-ok的效果如下,刪除前有二次確認

➜ find

find

. -type f -name "*.js" -ok rm\;

"rm ./1.js"?

試下-exec。直接就刪除了

find

. -type f -name "*.js" -exec rm\;

14. 找出空檔案

touch

.txt

echo

"hello"

>

1.txt

find

. -empty

linux shell 程式設計

bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...

linux shell 程式設計

1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...

Linux Shell 程式設計

檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...