find查找命令的各種使用方法


find是文件查找工具,實時查找,速度慢,精確匹配

find命令基本使用格式

find [options] [查找路徑] [查找條件] [處理動作]

查找路徑:默認為當前目錄

查找條件:默認為查找指定路徑下的所有文件

處理動作:默認為顯示

1、查找條件

-name "文件名稱":支持使用globbing

*、?、[]、[^]

-iname "文件名稱":查找時不區分字符大小寫

-user UserName:根據屬主查找

-group GroupName:根據屬組查找

-uid UID:根據用戶id查找

-gid GID:根據組id查找

-nouser:查找沒有屬主的文件

-nogroup:查找沒有屬組的文件

2、組合條件

-a:與,同時滿足

-o:或

-not,!:非,取反

-type:根據文件類型查找

    f:普通文件

    d:目錄

    b:塊設備

    c:字符設備

    l:符號鏈接文件

    p:命令管道

    s:套接字

-size:根據文件大小查找

  -size [+|-] #Unit  (#-1)<x<=#

  例如:-szie +2MB

  常用單位:k,M,G

3、根據時間戳查找

  以天為單位(time):

-atime [+|-]#:

+表示(#+1)天之外被訪問過

-表示#天之內被訪問過

無符號:表示(#+1)>x>=#天的時間段被訪問過

    -mtime [+|-]#

    -ctime [+|-]#

  以分鍾為單位:

    -amin [+|-]#

-mmin [+|-]#

-cmin [+|-]#

4、根據權限查找

  -perm [+|-]MODE

  MODE:精確匹配

  +MODE:任何一類用戶的任何一位權限匹配,常用戶查找某類特定    權限是否存在

  -MODE:沒類用戶的任何一位都匹配

  文件權限是644

  -perm 600:否

  -perm +222:可以

  -perm +002:否

  -perm -444:可以

5、處理動作

  -print:打印在標准輸出上

  -ls:以長格式輸出個文件信息

  -exec COMMAND {} \; :對查找到的文件執行指定的命令

  -ok COMMAND {} \; : 交互式的exec

  find把查找到的所有文件一次性地傳遞給-exec所指定的命令

  # find -type f -exec mv {} {}.bak \;

  find | xargs COMMAND

  # find -type f | xargs ls -l

6、工作中的實際應用

名字為:reso\0000000055c80c920156220f187420d0\402881e0391f602e0139c35b6f376a07\S12的文件刪除方法

# find . -name '*\\*' -exec rm {} \;

名字為:reso\0000000057078f240157192492910840\402881e031d6c5eb0131dc075cff03a3的目錄的刪除犯法

# find . -type d -a -name '*\\*' -exec rm -rf {} \;

之查找當前目錄,不進行遞歸查找的方法:

# find . ! -name "." -prune -name "*.html" 或者

# find  . -name "*html" -maxdepth 1 (此方法會有警告)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM