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:
delete in
file=os.path.join(pathname,filename)
ftime=time.time()
print ftime-stime
复制代码代码如下:
~  python test.py
494.272291183
⼤概⽤时8分钟。
6 Perl
复制代码代码如下:
test  time perl -e 'for(<*>){((stat)[9]<(unlink))}'
perl -e 'for(<*>){((stat)[9]<(unlink))}'  1.28s user 7.23s system 50% cpu 16.784 total

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。