linux系統下find是最常用的指令,find命令在目錄結構中搜尋檔案,並執行指定的操作,掌握它的形式與用法對運維工作很有用處。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' ; 注意和;之間的空格。-name filename 查詢名為filename的檔案-mtime -n +n 按檔案更改時間來查詢檔案,-n指n天以內,+n指n天以前-atime -n +n 按檔案訪問時間來查-ctime -n +n 按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前-type b/d/c/p/l/f 查是塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案-size n[c] 查長度為n塊[或n位元組]的檔案-mindepth -maxdepth 選項允許您指定您希望 find 搜尋深入到目錄樹的哪一級別
今天在編寫mysql資料庫備份指令碼時,就遇到乙個難題,要清理14天前的備份檔案。大家可能覺得這不是很簡單的事情嗎,用find找出,然後加xargs rm -rf就可以自動刪除了。
可事情不是這麼簡單,下面我來給大家介紹一下需求,我就想找到/home/mysql/backup/physical目下,14天的目錄,並刪除。
[mysql@localhost physical]$ pwd/home/mysql/backup/physical[mysql@localhost physical]$ ls -ltotal 0drwxr-x--- 3 mysql mysql 31 mar 23 02:30 202003230230drwxr-x--- 3 mysql mysql 31 mar 23 02:33 202003230233
用普通的find引數,試試效果
[mysql@localhost physical]$ find /home/mysql/backup/physical -type d -mtime +14/home/mysql/backup/physical/home/mysql/backup/physical/202003230230/home/mysql/backup/physical/202003230230/base_202003230230/home/mysql/backup/physical/202003230230/base_202003230230/mysql/home/mysql/backup/physical/202003230230/base_202003230230/sys/home/mysql/backup/physical/202003230230/base_202003230230/testdb/home/mysql/backup/physical/202003230230/base_202003230230/performance_schema/home/mysql/backup/physical/202003230233/home/mysql/backup/physical/202003230233/base_202003230233/home/mysql/backup/physical/202003230233/base_202003230233/mysql/home/mysql/backup/physical/202003230233/base_202003230233/sys/home/mysql/backup/physical/202003230233/base_202003230233/testdb/home/mysql/backup/physical/202003230233/base_202003230233/performance_schema
可是我只想找到下面2個目錄,並不需要找到下級子目錄,很明顯,find結果集中的目錄多了。
[mysql@localhost physical]$ lltotal 0drwxr-x--- 3 mysql mysql 31 mar 23 02:30 202003230230drwxr-x--- 3 mysql mysql 31 mar 23 02:33 202003230233
怎麼辦,我用man find看用法時,發現有2個引數-mindepth -maxdepth,可以控制查詢的層級,對於解決這個需求,非常的有用,來試試效果
find /home/mysql/backup/physical -mindepth 1 -maxdepth 1 -type d -mtime +14/home/mysql/backup/physical/202003230230/home/mysql/backup/physical/202003230233
到這裡,已經非常完美的解決了我的需求,在加上xargs rm -rf就可以了
find /home/mysql/backup/physical -mindepth 1 -maxdepth 1 -type d -mtime +14| xargs rm -rf
好了,今天就分享到這裡。 linux系統中強大的screen命令
screen 命令可能很多使用者還沒感受到,下面介紹的就是linux系統中強大的screen命令,具體內容如下所述。因為做二代測序分析的原因,經常需要執行很長時間的程式。由於時間很長,一直都沒什麼太好的辦法。當有了screen,這一切便都迎刃而解了。敲入命令screen會建立乙個跑著shell的單一...
強大的查詢命令find
find命令是乙個無處不在命令,是linux中最有用的命令之一。find命令用於 在乙個目錄 及子目錄 中搜尋檔案,你可以指定一些匹配條件,如按檔名 檔案型別 使用者甚至是時間戳查詢檔案 1.locate filename 在檔案資料庫中搜尋filename資訊,updatedb更新檔案資料庫 2....
Linux下強大的查詢命令find 用法和常見用例
linux系統下find是較為常用的指令,find命令在目錄結構中搜尋檔案,並執行指定的操作,掌握它的形式與用法對我們很有用處。因為linux下面一切皆檔案,經常需要搜尋某些檔案來編寫,所以對於linux來說find是一條很重要的命令。linux下面的find指令用於在目錄結構中搜尋檔案,並執行指定...