Linux下刪除大量檔案

2022-07-04 02:15:09 字數 1691 閱讀 3758

主要參考了

首先建立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

zsh: argument list too

long: rm

rm -f * 3.63s user 0.29s system 98% cpu 3.985 total

由於檔案數量過多,rm不起作用。

➜  test  time

find ./ -type f -exec rm

{} \;

find ./ -type f -exec rm {} \; 49.86s user 1032.13s system 41% cpu 43:19.17 total

➜  test  time

find ./ -type f -delete

find ./ -type f -delete 0.43s user 11.21s system 2% cpu 9:13.38 total

用時9分鐘。

首先建立空資料夾blanktest

➜  ~  time rsync -a --delete blanktest/ test/rsync -a --delete blanktest/ test/  0.59s user 7.86s system 51% cpu 16.418 total

16s,很好很強大。

import os

import timeit

def main():

for pathname,dirnames,filenames in os.walk('/home/username/test'):

for filename in filenames:

file=os.path.join(pathname,filename)

os.remove(file)

if __name__=='__main__':

t=timeit.timer('main()','from __main__ import main')

print t.timeit(1)

➜  ~  python test.py

529.309022903

大概用時9分鐘。

➜  test  time

perl -e '

for(<*>)

'perl -e '

for(<*>)

'1.28s user 7.23s system 50% cpu 16.784 total

16s,這個應該最快了。

統計一下:

命令耗費時間

rm 檔案數量太多,不可用

find with -exec

50萬檔案耗時43分鐘

find with -delete

9分鐘perl

16spython

9分鐘rsync with -delete

16s

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