1. 程式人生 > >find命令詳 解 練 習。

find命令詳 解 練 習。

find命令用於按照指定條件來查詢檔案,格式為“find [查詢路徑] 尋找條件 操作”。

引數 作用
-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舊的檔案
–type b/d/c/p/l/f 匹配檔案型別(後面的字母引數依次表示塊裝置、目 錄、字元裝置、管道、連結檔案、文字檔案)
-size 匹配檔案的大小(+50KB為查詢超過50KB的檔案, 而-50KB為查詢小於50KB的檔案)
-prune 忽略某個目錄
-exec …… {}; 後面可跟用於進一步處理搜尋結果的命令(下文會有 演示)

1.按匹配名稱查詢 找到根目錄下 名為 anaconda-ks.cfg 的檔案

[[email protected] ~]# find / -name anaconda-ks.cfg
/root/anaconda-ks.cfg

查詢根目錄檔名匹配*.c的檔案

[[email protected] ~]# find / -name *.c
/usr/lib/firmware/isci/create_fw.c
/usr/share/doc/systemd/sd-readahead.c

2.按匹配許可權查詢 查詢許可權為644的檔案或目錄(需完全符合)

find ./ -perm 664

查詢使用者/組許可權為讀寫,其他使用者許可權為讀(其他許可權不限)的檔案或目錄

find ./ -perm -664

查詢使用者有寫許可權或者組使用者有寫許可權的檔案或目錄

[[email protected] ~]# find ./ -perm /220
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./anaconda-ks.cfg
其他格式
find ./ -perm /u+w,g+w
find ./ -perm /u=w,g=w

查詢所有者許可權有讀許可權的目錄或檔案

find ./ -perm -u=r

查詢使用者組許可權有讀許可權的目錄或檔案

find ./ -perm -g=r

查詢其它使用者許可權有讀許可權的目錄或檔案

find ./ -perm -o=r

3.按照匹配所有者查詢

查詢所有者為cwf的檔案或目錄

find ./ -user cwf

4.按照匹配所有組查詢 查詢組名為gname的檔案或目錄

find ./ -group gname

5.按照匹配修改內容的時間查詢(-n指n天以內,+n指n天以 前)

查詢檔案更新日時在距現在時刻二天以內的檔案

[[email protected] ~]# find ./ -mtime -2
./
./.bash_history
./.ssh
./.ssh/known_hosts
./findresults

查詢檔案更新日時在距現在時刻二天以前的檔案

[[email protected] ~]# find ./ -mtime +2
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./anaconda-ks.cfg
./.ssh/id_rsa
./.ssh/id_rsa.pub
./datafile
./1
./awk
./.bashrc
./cwf
./560_file

查詢檔案更新日時在距現在時刻二分以內的檔案

find ./ -mmin -2

查詢檔案更新日時在距現在時刻二分以上的檔案

find ./ -mmin +2

6.按照匹配訪問檔案的時間查詢(-n指n天以內,+n指n天以 前) 按照 匹配修改檔案許可權的時間(-n指n天以內,+n指n 天以前) 和上面基本 一樣就不掩飾。

7.匹配無所有者的檔案

find ./ -nogroup

8.匹配比檔案f1新但比f2舊的檔案

  find  -newer f1 !f2

exec find / -user nebulalinux exec cp -a {} /root/findresults/ ;