假如你要在linux下刪除大量檔案,比如100萬、1000萬,像/var/spool/clientmqueue/的mail郵件, 像/usr/local/nginx/proxy_temp的nginx快取等,那麼rm -rf *可能就不好使了。
rsync提供了一些跟刪除相關的引數
rsync–help | grep delete
–del an alias for –delete-during
–delete delete files that don』t exist on the sending side
–delete-before receiver deletes before transfer (default)
–delete-during receiver deletes during transfer, not before
–delete-after receiver deletes after transfer, not before
–delete-excluded also delete excluded files on the receiving side
–ignore-errors delete even if there are i/o errors
–max-delete=num don』t delete more than num files
其中–delete-before 接收者在傳輸之前進行刪除操作
可以用來清空目錄或檔案,如下:
1、先建立乙個空目錄
mkdir /data/blank
2、用rsync刪除目標目錄
rsync–delete-before -d /data/blank/ /var/spool/clientmqueue/
這樣目標目錄很快就被清空了
又假如你有一些特別大的檔案要刪除,比如nohup.out這樣的實時更新的檔案,動輒都是幾十個g上百g的,也以用rsync來清空大檔案,而且效率比較高
1、建立空檔案
touch /data/blank.txt
2、用rsync清空檔案
rsync-a –delete-before –progress –stats /root/blank.txt /root/nohup.out
building file list …
1 file to consider
blank.txt
0 100% 0.00kb/s 0:00:00 (xfer#1, to-check=0/1)
number of files: 1
number of files transferred: 1
total file size: 0 bytes
total transferred file size: 0 bytes
literal data: 0 bytes
matched data: 0 bytes
file list size: 27
file list generation time: 0.006 seconds
file list transfer time: 0.000 seconds
total bytes sent: 73
total bytes received: 31
sent 73 bytes received 31 bytes 208.00 bytes/sec
total size is 0 speedup is 0.00
tips:
當src和dest檔案性質不一致時將會報錯
當src和dest性質都為檔案【f】時,意思是清空檔案內容而不是刪除檔案
當src和dest性質都為目錄【d】時,意思是刪除該目錄下的所有檔案,使其變為空目錄
最重要的是,它的處理速度相當快,處理幾個g的檔案也就是秒級的事
最核心的內容是:rsync實際上用的就是替換原理
linux下快速刪除大量檔案
假如你要在linux下刪除大量檔案,比如100萬 1000萬,像 var spool clientmqueue 的mail郵件,像 usr local nginx proxy temp的nginx快取等,那麼rm rf 可能就不好使了。rsync提供了一些跟刪除相關的引數 rsync help gr...
linux下快速刪除大量檔案
假如你要在linux下刪除大量檔案,比如100萬 1000萬,像 var spool clientmqueue 的mail郵件,像 usr local nginx proxy temp的nginx快取等,那麼rm rf 可能就不好使了。rsync提供了一些跟刪除相關的引數 rsync help gr...
Linux下快速刪除大量檔案
昨天遇到乙個問題,在linux中有乙個資料夾裡面含有大量的cache檔案 夾 數量級可能在百萬級別,使用rm rf 刪除時間慢到不可接受。google了一下,查到了一種方法,試用了下確實比單純使用rm快了乙個數量級。方法見下 1 首先建立乙個空白資料夾。mkdir tmp empty 2 之後使用以...