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...