1. 程式人生 > 其它 >linux 中find命令的用法

linux 中find命令的用法

 

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