linux下快速刪除大量檔案

2021-06-08 14:37:47 字數 2256 閱讀 5172

假如你要在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實際上用的就是替換原理

你可以用 rm -f *.log   引數列表太長

只需要乙個命令就可以搞定

ls *.log | xargs rm -f

剛把乙個包含幾萬個檔案的目錄乾掉(/var/log/samba),試試看。

注:用rm -fr (路徑+要刪檔案)也可以。

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 之後使用以...

Linux下刪除大量檔案

主要參考了 首先建立50萬個檔案 test for i in seq 1500000 do echo text i.txt done test time rm f zsh sure you want to delete all the files in home hungerr test yn y ...