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命令。相應命令的...