主要參考了
首先建立50萬個檔案
➜ test for i in $(seq1500000);do
echo text >>$i.txt;done
➜ test timerm -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 timefind ./ -type f -exec rm
{} \;
find ./ -type f -exec rm {} \; 49.86s user 1032.13s system 41% cpu 43:19.17 total
➜ test timefind ./ -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 osimport 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.py529.309022903
大概用時9分鐘。
➜ test timeperl -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 之後使用以...