AIX下find命令不遞迴刪除目錄 餘迪部落格

2022-09-23 01:03:08 字數 906 閱讀 5751

場景描述:

如下圖所示:在日誌目錄下有以日期命令的目錄,目錄裡面有目錄與log日誌檔案。因為空間報警,所以需要刪除前面的資料。

解決方法:

當然我們可以使用rm命令乙個個地刪除,考濾運維的方便,我們寫個指令碼來實現最好了。如果是linux平台的話,其實很簡單:

find?~/log?-maxdepth?1?-mindepth?1?-type?d?-mtime?+149?|?xargs?rm?-rf用上面的命令就可以了。但是在aix平台下的find命令就不那麼友好了,因為它沒有 maxdepth 、mindepth引數。在找了幾圈後發現可以用如下的命令來解決:

#刪除~/log/目錄下日期目錄,保留365天資料

find?~/log/*?-prune?-type?d?-name?"20*"?-mtime?+365?-print?|?xargs?rm?-rf?

##?上面的命令也等同於:

find?~/log/?!?-name?"."?-prune?-type?-d?-name?"20*"?-mtime?+?365?-print?|?xargs?rm?-rf

裡面關鍵說明:

1、prune這個引數,它的含義是 當遇到目錄時,不進行遞迴查詢。

2、對於開始目錄的限定,「./*」與「./」與「./ -name "."」與「./.」這幾個目錄是不一樣的,"./*"是從當前目錄下的所有的目錄與檔案開始;而「./」從當前目錄開始;「./ -name "."」則是除了./目錄以為的所有內容,等同「./*」;「./.」還是當前目錄。

最後把上面的語句放到crontab裡就可以用定時任務天天刪數了。

參考:?

1、stackovernet上的問答《equivalent maxdepth for find in aix》

2、my熊貓眼 寫的《find命令-prune 引數引起的思考》

AIX下crontab不執行

aix的crontab不執行.有一台p570,aix5.3 的crontab非 常的怪 需要每週重啟一次機器,要不然所有使用者的cron 任務就 根本不執 行.使用者的環境變數沒有問題,若reboot後,不 做任何修改配 置,系統會自動去執行cr on,但3 5天後,系統又莫明 其妙的不執行cron...

巧用find命令刪除Linux下亂碼檔案及資料夾

在linux中,每個檔案都有乙個節點編號,我們可以利用此來搞定亂碼,首先檢視亂碼檔案的節點號 ls i 22413314 12 前面的就是節點號了,接下來使用find命令查詢並且刪除 find inum 22413314 delete inum指根據節點號查詢 delete顧名思義就是刪除操作了。這...

巧用find命令刪除Linux下亂碼檔案及資料夾

在linux中,每個檔案都有乙個節點編號,我們可以利用此來搞定亂碼,首先檢視亂碼檔案的節點號 ls i 22413314 12 前面的就是節點號了,接下來使用find命令查詢並且刪除 find inum 22413314 delete inum指根據節點號查詢 delete顧名思義就是刪除操作了。這...