shell 程式設計學習之find命令總結

2021-09-10 14:19:09 字數 2871 閱讀 8344

find命令總結:

常用選項:

-name 查詢/etc目錄下以conf結尾的檔案 find /etc -name '*conf'

-iname 查詢當前目錄下檔名為aa的檔案,不區分大小寫 find . -iname aa

-user 查詢檔案屬主為hdfs的所有檔案 find . -user hdfs

-group 查詢檔案屬組為yarn的所有檔案 find . -group yarn

-type

f 檔案 find . -type f

d 目錄 find . -type d

c 字元裝置檔案 find . -type c

b 塊裝置檔案 find . -type b

l 鏈結檔案 find . -type l

p 管道檔案 find . -type p

-size

-n 小於大小n的檔案

+n 大於小於n的檔案

例子1:查詢/etc目錄下小於10000位元組的檔案 find /etc -size -10000c

例子2:查詢/etc目錄下大於1m的檔案 find /etc -size +1m

-mtime

-n n天以內修改的檔案

+n n天以外修改的檔案

n 正好n天修改的檔案

例子1:查詢/etc目錄下5天之內修改且以conf結尾的檔案 find /etc -mtime -5 -name '*.conf'

例子2:查詢/etc目錄下10天之前修改且屬主為root的檔案 find /etc -mtime +10 -user root

-mmin

-n n分鐘以內修改的檔案

+n n分鐘以外修改的檔案

例子1:查詢/etc目錄下30分鐘之前修改的檔案 find /etc -mmin +30

例子2:查詢/etc目錄下30分鐘之內修改的目錄 find /etc -mmin -30 -type d

-mindepth n 表示從n級子目錄開始搜尋

例子:在/etc下的3級子目錄開始搜尋 find /etc -mindepth 3

-maxdepth n 表示最多搜尋到n級子目錄

例子1:在/etc下搜尋符合條件的檔案,但最多搜尋到2級子目錄 find /etc -maxdepth 3 -name '*.conf'

例子2:

find ./etc/ -type f -name '*.conf' -size +10k -maxdepth 2

了解選項:

-nouser 查詢沒有屬主的使用者

例子:find . -type f -nouser

-nogroup 查詢沒有屬組的使用者

例子:find . -type f -nogroup

-perm

例子:find . -perm 664

-prune

通常和-path一起使用,用於將特定目錄排除在搜尋條件之外

例子1:查詢當前目錄下所有普通檔案,但排除test目錄

find . -path ./etc -prune -o -type f

例子2:查詢當前目錄下所有普通檔案,但排除etc和opt目錄

find . -path ./etc -prune -o -path ./opt -prune -o -type f

例子3:查詢當前目錄下所有普通檔案,但排除etc和opt目錄,但屬主為hdfs

find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs

例子4:查詢當前目錄下所有普通檔案,但排除etc和opt目錄,但屬主為hdfs,且檔案大小必須大於500位元組

find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs -a -size +500c

-newer file1

例子:find /etc -newer a

操作:-print 列印輸出

-exec 對搜尋到的檔案執行特定的操作,格式為-exec 'command' {} \;

例子1:搜尋/etc下的檔案(非目錄),檔名以conf結尾,且大於10k,然後將其刪除

find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;

例子2:將/var/log/目錄下以log結尾的檔案,且更改時間在7天以上的刪除

find /var/log/ -name '*.log' -mtime +7 -exec rm -rf {} \;

例子3:搜尋條件和例子1一樣,只是不刪除,而是將其複製到/root/conf目錄下

find ./etc/ -size +10k -type f -name '*.conf' -exec cp {} /root/conf/ \;

-ok 和exec功能一樣,只是每次操作都會給使用者提示

邏輯運算子:

-a 與

-o 或

-not|! 非

例子1:查詢當前目錄下,屬主不是hdfs的所有檔案

find . -not -user hdfs | find . ! -user hdfs

例子2:查詢當前目錄下,屬主屬於hdfs,且大小大於300位元組的檔案

find . -type f -a -user hdfs -a -size +300c

例子3:查詢當前目錄下的屬主為hdfs或者以xml結尾的普通檔案

find . -type f -a \( -user hdfs -o -name '*.xml' \)

Linux學習筆記之shell程式設計(基礎命令)

目錄 環境變數 位置變數 預定義變數 自定義變數 算數運算 內建測試判斷 成功 成立 1 失敗 不成立 0 數值比較 字串測試 檔案測試 date 取字串 find 查詢檔案 使用者環境變數 root bash profile 系統環境變數 etc profile 通常和指令碼聯合使用 0 指令碼名...

shell程式設計 find命令

shell程式設計 find命令 find 列出當前目錄以及子目錄下的所有檔案 find name 11.png 找到當前目錄下名字為11.pngd的檔案 find name jpg 找到當前目錄下目錄所有的jpg檔案 find name jpg o name png 找到當前目錄下jpg和png檔...

shell指令碼之find

find pathname options print exec ok 引數pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的...