linux删除文件的6种方法(总结)

首先建立50万个文件:

test  for i in $(seq 1 500000)  for> do  for> echo test >>$i.txt  for> done

1.rm

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不起作用。

2.find

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

大概43分钟。

3.find with delete

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

用时9分钟。

4.rsync
首先建立空文件夹blanktest

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

16s,很好很强大。

5.Python

import os  import time  stime=time.time()  for pathname,dirnames,filenames in os.walk('/home/username/test'):       for filename in filenames:           file=os.path.join(pathname,filename)           os.remove(file)   ftime=time.time()   print ftime-stime
 ~  python test.py  494.272291183

大概用时8分钟。

6.Perl

 test  time perl -e 'for(){((stat)[9]){((stat)[9]

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享