find命令詳 解 練 習。
阿新 • • 發佈:2018-12-12
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/ ;