Linux常用命令之 查找命令 find(一)


  我們都知道在Linux中有着上千條的命令,而常用命令不過百條。

  我們也知道在Linux里面“一切皆文件”,那么如何能夠快速的找到你想要找的東西就顯得尤為重要。

  find是Linux里面最重要的命令之一,它有着強大的查詢功能。它是在不指定查找目錄的情況下是對整個系統進行遍歷查找,並執行指定操作。find是直接搜索硬盤,所以在遍歷一個大的文件系統是就可能會消耗大量的時間,它類似於Windows下的搜索。

 

1. find的使用格式: find [PATHNAME][option][action]

    我們知道 PATHNAME 是 find命令查找的路徑。例如 . 代表當前目錄, / 代表根目錄,當然我們也可以指定路徑如 /tmp

 

——>a.按類型查找

   

  看一下執行結果:

  查找文件:

  

  查找目錄:

  

——>b.按名字查找

  如果查找出來的文件太多,不好顯示怎么辦?Linux也為我們提供了可改的輸出模式。例如:

  -print :將查找到的匹配的文件輸出到標准輸出

    find /home -type f -print

  -exec :將查找到的文件進行額外的動作

    find /home/qiao/桌面 -name “1.txt” -exec rm {} \;            ——> 意思即為找到1.txt之后刪除它

    • {}代表的是find做找到的內容,即find的結果會被放到{}的位置中;

  • -exec 到 \; 是關鍵字代表find額外動作的開始(-exec)到(\;)結束,這中間的就是find指令內的額外動作,在上面例子中就是【 rm {} 】;

  • \ 為轉義字符

  find還有好多其他的參數,總結如下:

   -name 按照⽂件名查找⽂件。
  -perm 按照⽂件權限來查找⽂件。
  -prune 使⽤這⼀選項可以使find命令不在當前指定的目錄中查找,如果同時使⽤-depth選項,那么-prune將被find命令忽略。
  -user 按照⽂件屬主來查找⽂件。
   -group 按照⽂件所屬的組來查找⽂件。
   -mtime -n +n 按照⽂件的更改時間來查找⽂件, - n表⽰⽂件更改時間距現在n天以內, + n表⽰⽂件更改時間距現在n天以前。

       ps:find命令還有-atime-ctime 選項,但它們都和-m time選項相同。
  -nogroup 查找⽆有效所屬組的⽂件,即該⽂件所屬的組在/etc/groups中不存在。
  -nouser 查找⽆有效屬主的⽂件,即該⽂件的屬主在/etc/passwd中不存在。

  -newer file1 ! file2 查找更改時間⽐⽂件file1新但⽐⽂file2舊的⽂件。
  -type 查找某⼀類型的⽂件,例如:
    b - 塊設備⽂件。
    d - 目錄。
    c - 字符設備⽂件。
    p - 管道⽂件。
    l - 符號鏈接⽂件。
    f - 普通⽂件。
  -size n[c] 查找⽂件⻓度為n塊的⽂件,帶有c時表⽰⽂件⻓度以字節計。
  -depth:在查找⽂件時,⾸先查找當前目錄中的⽂件,然后再在其⼦目錄中查找。
  -fstype:查找位於某⼀類型⽂件系統中的⽂件,這些⽂件系統類型通常可以在配置⽂件/etc/fstab中找到,該配置⽂件中包含了本系統中有關⽂件系統的信息。
  -mount:在查找⽂件時不跨越⽂件系統mount點。
  -follow:如果find命令遇到符號鏈接⽂件,就跟蹤⾄鏈接所指向的⽂件。
  -cpio:對匹配的⽂件使⽤cpio
命令,將這些⽂件備份到磁帶設備。

 


免責聲明!

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



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