shell編程四劍客之find

(1) Find作用

  Find主要用來對系統文件,目錄的查找


(2) Find語法

  find  path  -option      [exec   command   ]  {}  \;

  註釋:

             <1>  path  表示路徑 ,可以從根查找(/)     可以從當前目錄查找(.)      可以從指定目錄查找(tmp/)

             <2>  option 表示選擇   -name表示查找文件名稱(*.txt)   -type 通過文件類型進行查找   -size  表示通過文件大小查找   

                                                   -perm 通過文件權限查找  -mtime  表示通過時間類型查找

             <3>   exec   接要執行的命令  例如    find  .   -name  "*.txt"  -exec  rm-rf {} \;   {}表示把前面查找的結果放到裏面


(3) find -name 參數案例

              <1>  find   /data/  -name   "*.txt"   查找/data/目錄以.txt結尾的文件

              <2>  find  /data/  -name   "[A-Z]"  查找/data/目錄下以大寫字母開頭的文件

              <3>  find  /data/   -name   "test"   查找/data/目錄下以test開頭的文件

              <4>  find  /data/   -name   "*.txt" -exec  mv{}  /tmp/  \;   查找/data/目錄下以.txt結尾的文件把它移動到tmp目錄下

              <5>  find  /tmp/   -name  "*.txt"  -exec  mv{}  .   \;    查看/tmp/目錄下以.txt結尾的文件移動到當前目錄下

              <6>  find  .   -name   "jfedu.txt" -exec  rm-rf {}  \;   查找當前目錄下文件名稱爲jfedu.txt的文件,執行刪除操作

       註釋:

                  不加-type  f |d | l   -name不指定查找的文件類型,默認查找所有


(4) find   -type 參數案例

             <1>  find  /data/  -type  d        查找/data/目錄下,是目錄類型的文件

             <2>  find  /data/  -type  l         查找/data/目錄下的軟連接文件

             <3>  find  /data/  -type  f         查找/data/目錄下的文件類型文件

             <4>  find  /data/ -type  d  -exec chmod  744 -R   查找/data/目錄下是目錄類型的文件.並將權限設置爲744


(5)  find   -size  參數案例

             <1>  find   /data/  -size 10M    查找/data/目錄下是10M的文件

             <2>  find  /data/   -size  -10M   查找/data/目錄下小於10M 的文件

             <3>  find  /data/   -size   +10M  查找/data/目錄下大於10M的文件


(6)  find   -perm 參數案例

            <1>  find   /data/   -perm   744   查找/data/目錄下文件或目錄權限是744的

            <2>  find   /data/  -perm   +644  查找/data/目錄下文件或目錄的權限是644以上的

            <3>  find   /data/  -perm   -644   查找/data/目錄下文件或目錄權限是644以下的


(7)  find   -mtime 參數案例

          <1> find  /data/   -mtime   +30   -name  "*.log"   查找/data/目錄下30天以前的log文件

          <2> find  /data/  -mtime    -30   -name  "*.txt"      查找/data/目錄下30天以內的txt文件

          <3> find  /data/   -mtime   30   -name   "*.log"   查找/data/目錄下第30天的log文件

          <4> find  /data/   -mmin   +30  -name  "*.log"   查看/data/目錄下30分鐘以前的log文件

          <5> find  /data/   -amin  -30    -name   "*.txt"  查看/data/目錄下30分鐘以內txt文件

          <6> find  /data/  -cmin  30  -name  "*.log"  查找/data/目錄下第30分鐘的log文件


(8) find  綜合案例

          <1> 查找/data/目錄下以.log結尾的文件,文件大於10k,同時cp /tmp目錄下

              find  /data/  -name  "*.log" -type f  -size +10k  -exec  cp { }  /tmp \;


          <2> 查找/data/目錄下以.txt結尾的文件,大於10k的文件,權限爲644,並刪除文件

               find   /data/  -name  "*.txt"  -type   f    -size +10k    -perm 644  -exec rm-rf{}  \;


           <3> 查找/data/目錄下以.log結尾的文件,30天以前的文件,文件大小是10M並移動到/tmp目錄

                find  /data/  -name   "*.log"  -type  f  -mtime +30  -size 10M  -exec  mv {}   /tmp  \;


    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章