CentOS 檔案搜尋find

2022-06-06 05:27:09 字數 2953 閱讀 6920

1、檔案搜尋,內建的的命令是find

用法: find [查詢路徑] 尋找條件 操作

預設路徑為當前目錄;預設表示式為 -print

2、主要引數:

-name  匹配名稱 

-perm 匹配許可權(mode為完全匹配,-mode 為包含即可)

-user 匹配所有者

-group 匹配所有組

-mtime -n +n 匹配修改內容的時間(-n指 n天以內,+n指 n天以前)

-atime -n +n 匹配訪問檔案的時間(-n指 n天以內,+n指 n天以前)

-ctime -n +n 匹配修改檔案許可權的時間(-n指 n天以內,+n指 n天以前)

-nouser 匹配無所有者的檔案

-nogroup 匹配無所有組的檔案

-newer f1 !f2 匹配比檔案 f1新但比 f2舊的檔案

-size 匹配檔案的大小(+50kb 為查詢超過 50kb 的檔案,而-50kb小於50kb的檔案)

-prune 忽略某個目錄

-exec …… {}\; find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格,{}表示查詢出來的沒乙個檔案,結尾必須是"\;"

3、按名字查詢

在/opt目錄下查詢elasticsearch的配置檔案

[root@bigdata-senior01 ~]# find /opt -name "elastic*.yml"避免因為許可權不夠的提示,把查詢錯誤提示轉移到特定的目錄中去。

[xu.dm@bigdata-senior01 ~]$ find /opt -name "elastic*.yml" 2> /dev/null

/opt/elasticsearch-6.5.1/config/elasticsearch.yml

按名字忽略大小寫搜尋

[root@vmstation ~]# find /etc -iname "selinux"

/etc/sysconfig/selinux

/etc/selinux

4、按檔案大小查詢

查詢/home下大於10m的檔案

[root@bigdata-senior01 ~]# find /home -size +10m

/home/data/kafka_2.12-2.0.0.tgz

查詢小於1k的檔案

[root@bigdata-senior01 ~]# find /home -size -1k

5、與,或條件,and,or

[root@bigdata-senior01 ~]# find /opt -name "*yml" -and -name "elastic*"

/opt/elasticsearch-6.5.1/config/elasticsearch.yml

find / -user fred -or -user georg

6、其他

find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案

find / -atime -2 # 查詢在系統中最後48小時訪問的檔案

find / -empty # 查詢在系統中為空的檔案或者資料夾

find / -group cat # 查詢在系統中屬於 groupcat的檔案

find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案

find / -mtime -1 #查詢在系統中最後24小時裡修改過的檔案

find / -nouser #查詢在系統中屬於作廢使用者的檔案

find / -user fred #查詢在系統中屬於fred這個使用者的檔案

在find命令中還可以使用「非」的關係來查詢檔案,如果我們要在/tmp目錄中查詢所有不屬於panda的檔案,使用乙個簡單的

find /tmp ! -user panda

查詢並顯示檔案的方法

find   .   -perm -007   -exec ls -l {} \;   #查所有使用者都可讀寫執行的檔案同-perm 777

find   .   -name   "[a-z][a-z][0–9][0–9].txt"    -print   #查以兩個小寫字母和兩個數字開頭的txt檔案

find   /home   -uid   +501                  列出/home目錄內使用者的識別碼大於501的檔案或目錄

find   /home   -gid 501                   列出/home內組id為501的檔案或目錄

7、exec引數,{}表示查詢出來的沒乙個檔案,結尾必須是"\;"

在/opt目錄下查詢檔案,並拷貝到但前目錄下

[root@bigdata-senior01 ~]# find /opt -name "elastic*.yml" -exec cp {} ./ \;

找到檔案並用ls -lh顯示

[root@bigdata-senior01 ~]# find /opt -name "*.conf" -exec ls -lh {} \;

-rw-r--r--. 1 hadoop hadoop 1.1k 3月 30 2018 /opt/modules/hadoop-3.1.0/share/hadoop/yarn/yarn-service-examples/httpd/httpd-proxy.conf

-rw-r--r--. 1 hadoop hadoop 1009 3月 30 2018 /opt/modules/hadoop-3.1.0/share/hadoop/yarn/yarn-service-examples/httpd-no-dns/httpd-proxy-no-dns.conf

檔案搜尋命令find

1 路徑加檔名搜尋 find 查詢的是etc目錄下的以init為名字的檔案。加萬用字元後為模糊搜尋,只要檔名中含有init即可。查詢etc目錄下以init開頭的七位檔名。2 搜尋時不區分大小寫 iname 我們知道在windows系統中,檔名是不區分大小寫的,大寫和小寫是同乙個檔案。但是在linux...

Linux 命令 find 搜尋檔案

find 命令可以依據檔案的各種屬性在既定的目錄 及其子目錄 裡搜尋檔案。find h l p d debugopts olevel path.expression cmin n 匹配 n 分鐘前改變狀態 內容或屬性 的檔案或目錄。如果不到 n 分鐘,就用 n,如果超過 n 分鐘,就用 n。cnew...

ubuntu 搜尋檔案方法(find命令)

通用格式 find pathname options print exec ok 例子 find name filename 再根目錄裡面搜尋檔名為filename的檔案 find etc name s 在目錄裡面搜尋帶有s的檔案 find etc name s 在目錄裡面搜尋以s結尾的檔案 fin...