- mkdir blank
- rsync -a --delete blank/ BigFolder/
- rmdir blank
- -a:archive mode,等同於-rlptgoD
- --delete:刪除目標資料夾裡面多出來檔案
- -r:--recusive,遞迴的處理資料夾
- -l:--links,遇到symlinks在目標資料夾裡面重新建造
- -p:--perms,目標的權限要和來源一樣
- -t:--times,保存檔案原來的更改時間
- -g:--group,保存檔案原來的gid
- -O:--omit-dir-times:排除修改時間比較先前的資料夾
還有另外一招據說更快,但是我在測試的時候用不出來...:
- cd BigFolder/
- perl -e 'for(<*>){((stat)[9]<(unlink))}'
- cd .. && rmdir BigFolder/
參考資料
- Efficiently delete large directory containing thousands of files:上述招式來自這邊
- Which is the fastest method to delete files in Linux:比較了rm, find, perl, rsync這幾招,看起來是perl那招最快但我沒試出來,所以建議使用rsync那招
- 列出檔案並根據修改日期排序:先前在這邊遇到很大的資料夾
沒有留言:
張貼留言