[問題] 請問unix的find和rm指令搭配的用法???

看板Linux作者 (小建)時間13年前 (2013/02/26 23:52), 編輯推噓5(5015)
留言20則, 7人參與, 最新討論串1/1
我有一個目錄...裡面有很多子目錄和檔案 希望可以刪除 當層目錄內100天前資料嗎 例如: /usr/data內有 A1,A2,A3...A100子目錄 但是/usr/data內有很多檔案是xml結尾的 我希望只刪除/usr/data內xml檔案...大於100天的... 但是我卻不希望刪除到A1,A2,A3...A100子目錄內的xml檔案.... 我想到的指令是 find /usr/data -name "*.xml" +mtime 100 -exec rm{} \; 但這會遇到一個問題...這也會刪除包含A1,A2,A3...A100子目錄內的xml檔案 有辦法解嗎????? 麻煩大大幫忙了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.136.7

02/26 23:55, , 1F
看看-maxdepth
02/26 23:55, 1F

02/26 23:59, , 2F
不好意思...我沒有-maxdepth 參數..
02/26 23:59, 2F

02/27 00:00, , 3F
我系統是solaris
02/27 00:00, 3F

02/27 00:00, , 4F
在前面加上 -maxdepth 1 -type f
02/27 00:00, 4F

02/27 00:01, , 5F
慢好幾步 ~"~
02/27 00:01, 5F

02/27 00:02, , 6F
我系統不認得-maxdepth參數..有機會用grep指令
02/27 00:02, 6F

02/27 00:03, , 7F
去過濾其它目錄嗎
02/27 00:03, 7F

02/27 00:04, , 8F
先把子目錄搬走?反正mv的成本不高
02/27 00:04, 8F

02/27 00:08, , 9F
已知路徑格式可不可以一個一個test?
02/27 00:08, 9F

02/27 00:09, , 10F

02/27 00:13, , 11F
find -path './A*' -type d -prune -o -name '*.xml' -print
02/27 00:13, 11F

02/27 22:30, , 12F
我的子目錄名稱都不一樣.而且有幾10個.一個一個過濾太麻煩
02/27 22:30, 12F

02/27 22:31, , 13F
mv要如何將子目錄一次搬走...而又不會搬到當層目錄
02/27 22:31, 13F

02/27 22:32, , 14F
如果真的不行...我想到一個比較笨的方式..寫一個shell
02/27 22:32, 14F

02/27 22:33, , 15F
先建立一個目錄..在把當層目錄的*.xml搬進去...
02/27 22:33, 15F

02/27 22:34, , 16F
在使用find指令+rm刪除100天前資料...在把剩下檔案搬回去
02/27 22:34, 16F

02/27 22:35, , 17F
但真的想知道..是否有更聰明的方式
02/27 22:35, 17F

02/27 23:25, , 18F
-prune
02/27 23:25, 18F

03/08 11:40, , 19F
0.0 可能你不喜歡簡單解法八ˇˇ
03/08 11:40, 19F

03/08 11:43, , 20F
rm `find -name "*.xml" |grep -v "./a\d*"`
03/08 11:43, 20F
文章代碼(AID): #1HBDfNQ6 (Linux)
文章代碼(AID): #1HBDfNQ6 (Linux)