find命令
find命令的功能是根據給定的路徑和條件查找相關檔案或目錄,可以使用的引數很多,并且支持正則運算式,結合管道符后能夠實作更加復雜的功能,是系統管理員和普通用戶日常作業必須掌握的命令之一,
find命令通常進行的是從根目錄(/)開始的全盤搜索,有別于whereis、which、locate……等等的有條件或部分檔案的搜索,對于服務器負載較高的情況,建議不要在高峰時期使用find命令的模糊搜索,會相對消耗較多的系統資源,
命令大全
find命令的格式很簡單,一般分成三個部分:1)find命令;2)搜索路徑(目錄可以寫多個);3)運算式,對于find命令,最需要學習的是運算式這一段,運算式決定了我們要找的檔案是什么屬性的檔案,還可以指定一些“動作”,比如將匹配某種條件的檔案洗掉,所以,find命令的核心就是運算式的指定方法,在這里,我們首先用下表說明find命令各引數的含義:
| 引數命令 | 用法 |
|---|---|
| -name | 按檔案名稱查找 |
| -user | 按檔案擁有者查找 |
| -group | 按檔案擁有組查找 |
| -type b/d/c/p/l/f | 按檔案型別查找(后面的字幕字母依次表示塊設備、目錄、字符設備、管道、鏈接檔案、文本檔案) |
| -perm | 按檔案權限查找 |
| -exec | 對查找到的檔案執行指定動作 |
| -maxdepth/-mindepth | 指定查找范圍最大/最小為第幾級目錄 |
| -cmin | 按檔案修改時間查找 |
| -size | 按檔案大小查找 |
| -o / -a /-not | 查找條件或/且/非 |
| -prune | 忽略某個目錄 |
| -nouser / -nogroup | 匹配無所有者/所有組的檔案 |
| -newer f1 !f2 | 匹配比檔案f1新但比f2舊的檔案 |
| -mtime(ctime/atime) -n +n | 匹配修改內容的時間(匹配訪問檔案的時間/匹配修改檔案權限的時間)(-n指n天以內,+n指n天以前) |
示例:
-
全盤搜索系統中所有以.service結尾的檔案:
find / -name *.service("/"代表所有的目錄)
-
在/etc目錄中搜索所有大約1M大小的檔案:
find /etc -size +1M[root@localhost ~] find /etc -size +1M /etc/udev/hwdb.bin /etc/selinux/targeted/active/policy.kern /etc/selinux/targeted/contexts/files/file_contexts.bin /etc/selinux/targeted/policy/policy.31 -
在/var目錄中搜索所有屬于指定用戶的檔案:
find /var -user postgres
-
列出當前作業目錄中的所有檔案、目錄以及子檔案資訊:
find .[root@localhost ~] find . ./.gnupg ./.gnupg/gpg.conf ./.gnupg/secring.gpg ./.gnupg/pubring.gpg~ ./.gnupg/pubring.gpg ./.gnupg/trustdb.gpg ./test ./.viminfo ...... -
在/var/log目錄下搜索所有指定后綴的檔案,后綴不需要大小寫
find /var.log -iname "*.log"[root@localhost ~] find /var/log -iname "*.log" /var/log/tuned/tuned.log /var/log/audit/audit.log /var/log/anaconda/anaconda.log /var/log/anaconda/X.log ....... -
在/var/log目錄下搜索所有后綴不是.log的檔案:
find /var/log ! -name "*.log"[root@localhost ~] find /var/log ! -name "*.log" /var/log/btmp /var/log/cron-20220508 /var/log/maillog-20220508 /var/log/messages-20220508 /var/log/secure-20220508 /var/log/spooler-20220508 -
搜索當前作業目錄中的所有近7天被修改過的檔案:
find . -mtime +7[root@localhost] find . -mtime +7 . ./.DS_Store ./assets ./assets/postgresql-12.10.tar.gz ./conf ./conf/pg_hba.conf -
全盤搜索系統中所有型別為目錄,且權限為1777的目錄檔案:
find / -type d -perm 1777[root@localhost ~] find / -type d -perm 1777 /dev/mqueue /dev/shm /var/tmp /tmp -
全盤搜索系統中所有型別為普通檔案,且可以執行的檔案資訊:
find / -type f -perm = /a=x[root@localhost ~] find / -type f -perm /a=x /usr/src/kernels/3.10.0-1160.59.1.el7.x86_64/scripts/mod/mk_elfconfig /usr/src/kernels/3.10.0-1160.59.1.el7.x86_64/scripts/mod/modpost /usr/src/kernels/3.10.0-1160.59.1.el7.x86_64/tools/objtool/objtool -
全盤搜索系統中所有后綴為.mp4的檔案,并洗掉所有查找到的檔案:
[root@linuxcool ~] find / -name "*.mp4" -exec rm -rf {} \;
本文來自博客園,作者:ivanlee717,轉載請注明原文鏈接:https://www.cnblogs.com/ivanlee717/p/16280595.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/476357.html
標籤:其他
