linux 中find命令的用法
阿新 • • 發佈:2022-03-27
1、在當前路徑直接查詢
root@ubuntu01:/home/test# ls 01.txt 02.csv 02.txt 03.csv 04.txt root@ubuntu01:/home/test# find 02.csv 02.csv root@ubuntu01:/home/test# find *.csv 02.csv 03.csv root@ubuntu01:/home/test# find *.txt 01.txt 02.txt 04.txt
2、指定路徑,依據檔名進行查詢(-or等價於-o)
root@ubuntu01:/home/test# ls 01.txt 02.csv 02.txt 03.csv 04.txt a.ped b.ped root@ubuntu01:/home/test# find ./ -name "*.txt" ## 查詢當前路徑下所有的txt檔案 ./02.txt ./04.txt ./01.txt root@ubuntu01:/home/test# find ./ -name "*.txt" -or -name "*.ped" ## 查詢當前路徑下的所有txt檔案和ped檔案 ./b.ped ./02.txt ./04.txt ./01.txt ./a.ped root@ubuntu01:/home/test# find ./ -name "*.txt" -or -name "*.ped" -or -name "02.csv" ## 查詢當前路徑下所有的txt檔案、ped檔案和02.csv檔案。./b.ped ./02.txt ./04.txt ./01.txt ./02.csv ./a.ped
3、反向查詢(-not 等價於!)
root@ubuntu01:/home/test# ls 01.txt 02.csv 02.txt 03.csv 04.txt a.ped b.ped root@ubuntu01:/home/test# find ./ -not -name "*.txt" ## 檢視名字不是.txt字尾的所有檔案和目錄 ./ ./b.ped ./03.csv ./02.csv ./a.ped root@ubuntu01:/home/test# find ./ -type f -not -name "*.txt" ## -type f限定查詢的結果為檔案,而不包含目錄./b.ped ./03.csv ./02.csv ./a.ped root@ubuntu01:/home/test# find ./ -type f -not -name "*.txt" -not -name "*.csv" ## 查詢除txt檔案和csv檔案以外的所有檔案 ./b.ped ./a.ped
4、依據檔案大小進行查詢
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h ## 列出所有檔案的大小 total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rw-r--r-- 1 root root 10M 3月 27 17:31 b.txt -rw-r--r-- 1 root root 100M 3月 27 17:32 c.txt -rw-r--r-- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-- 1 root root 150M 3月 27 17:32 e.txt
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rw-r--r-- 1 root root 10M 3月 27 17:31 b.txt -rw-r--r-- 1 root root 100M 3月 27 17:32 c.txt -rw-r--r-- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-- 1 root root 150M 3月 27 17:32 e.txt root@ubuntu01:/home/test# find ./ -type f -size 100M ## 查詢大小為100M的檔案 ./c.txt root@ubuntu01:/home/test# find ./ -type f -size +100M ## 查詢大小大於100M的檔案 ./e.txt ./d.txt root@ubuntu01:/home/test# find ./ -type f -size -100M ## 查詢大小小於100M的檔案 ./a.txt ./b.txt root@ubuntu01:/home/test# find ./ -type f -size +50M -size -200M ## 查詢檔案大小在50M到200M的檔案 ./e.txt ./c.txt root@ubuntu01:/home/test# find ./ -type f -not -size +50M -or -not -size -200M ## 查詢大小小於50M或者大於200M的檔案 ./d.txt ./a.txt ./b.txt
root@ubuntu01:/home/test# find ./ -type f -size -50M -or -size +200M ## 查詢大小小於50M或者大於200M的檔案
./d.txt ./a.txt ./b.txt
5、依據檔案的許可權進行查詢
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h ## 列出檔案的許可權 total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rwxrwxrwx 1 root root 10M 3月 27 17:31 b.txt* -rwxr--r-- 1 root root 100M 3月 27 17:32 c.txt* -rw-rw-rw- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-x 1 root root 150M 3月 27 17:32 e.txt*
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rwxrwxrwx 1 root root 10M 3月 27 17:31 b.txt* -rwxr--r-- 1 root root 100M 3月 27 17:32 c.txt* -rw-rw-rw- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-x 1 root root 150M 3月 27 17:32 e.txt* root@ubuntu01:/home/test# find ./ -type f -perm 777 ## 查詢檔案許可權為777的檔案 ./b.txt root@ubuntu01:/home/test# find ./ -type f -perm 645 ## 查詢檔案許可權為645的檔案 ./e.txt
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rwxrwxrwx 1 root root 10M 3月 27 17:31 b.txt* -rwxr--r-- 1 root root 100M 3月 27 17:32 c.txt* -rw-rw-rw- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-x 1 root root 150M 3月 27 17:32 e.txt* root@ubuntu01:/home/test# find ./ -type f -not -perm 777 ## 查詢許可權為非777的檔案 ./e.txt ./d.txt ./a.txt ./c.txt
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rwxrwxrwx 1 root root 10M 3月 27 17:31 b.txt* -rwxr--r-- 1 root root 100M 3月 27 17:32 c.txt* -rw-rw-rw- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-x 1 root root 150M 3月 27 17:32 e.txt* root@ubuntu01:/home/test# find ./ -type f -perm /o=x ## 查詢其他人有執行許可權的檔案 ./e.txt ./b.txt root@ubuntu01:/home/test# find ./ -type f -perm /o=x -perm /g=w ## 查詢其他人有執行許可權、且所屬組具有寫入許可權的檔案 ./b.txt
root@ubuntu01:/home/test# ls a.txt b.txt c.txt d.txt e.txt root@ubuntu01:/home/test# ll -h total 781M drwxr-xr-x 2 root root 4.0K 3月 27 17:32 ./ drwxr-xr-x 6 root root 4.0K 3月 27 14:36 ../ -rw-r--r-- 1 root root 20M 3月 27 17:31 a.txt -rwxrwxrwx 1 root root 10M 3月 27 17:31 b.txt* -rwxr--r-- 1 root root 100M 3月 27 17:32 c.txt* -rw-rw-rw- 1 root root 500M 3月 27 17:32 d.txt -rw-r--r-x 1 root root 150M 3月 27 17:32 e.txt* root@ubuntu01:/home/test# find ./ -type f -not -perm /o=x ## 查詢其他人沒有執行許可權的檔案 ./d.txt ./a.txt ./c.txt