除了鏈結中提到的下列六種方法外,再補充一種方法,並附加測試過程:
for i in $(seq 1 500000)
for> do
for> echo test >>$i.txt
for> 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
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
~ time rsync -a --delete blanktest/ test/
rsync -a --delete blanktest/ test/ 0.59s user 7.86s system 51% cpu 16.418 total
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
test time perl -e 'for(<*>)'
perl -e 'for(<*>)' 1.28s user 7.23s system 50% cpu 16.784 total
補充通過刪除目錄來刪除目錄下面的檔案,然後再重建目錄。
比如刪除oracle裡的audit目錄:
rm -fr adump
測試環境:meminfo 2gb,cpu 1
下面將執行rm -fr test,用時10秒
[root@localhost ~]# echo "<< start test :`date`>>";df -i;mkdir test;cd test;echo "<< start create file :`date`>>";for i in $(seq 1 500000);do echo test >> $i.txt ;done;echo "<< end file created :`date`>>";df -i ;cd .. ; echo "<< start delete file :`date`>>";rm -fr test ;echo "<< end delete file :`date`>>"; df -i ;
<< start test :2023年 12月 31日 星期四 02:16:04 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 93395 926605 10% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
<< start create file :2023年 12月 31日 星期四 02:16:04 cst>>
<< end file created :2023年 12月 31日 星期四 02:16:44 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 593396 426604 59% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
<< start delete file :2023年 12月 31日 星期四 02:16:44 cst>>
<< end delete file :2023年 12月 31日 星期四 02:16:54 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 93395 926605 10% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
[root@localhost ~]#
下面將執行find . -type f -exec rm {} \;
,用時15分鐘
[root@localhost ~]# echo "<< start test :`date`>>";df -i;mkdir test;cd test;echo "<< start create file :`date`>>";for i in $(seq 1 500000);do echo test >> $i.txt ;done;echo "<< end file created :`date`>>";df -i ; echo "<< start delete file :`date`>>";find . -type f -exec rm {} \;;cd .. ;rm -fr test ;echo "<< end delete file :`date`>>"; df -i ;
<< start test :2023年 12月 31日 星期四 02:44:39 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 93319 926681 10% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
<< start create file :2023年 12月 31日 星期四 02:44:39 cst>>
<< end file created :2023年 12月 31日 星期四 02:45:19 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 593320 426680 59% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
<< start delete file :2023年 12月 31日 星期四 02:45:19 cst>>
<< end delete file :2023年 12月 31日 星期四 03:00:34 cst>>
檔案系統 inode 已用(i) 可用(i) 已用(i)%% 掛載點
1020000 93317 926683 10% /
tmpfs 186844 3 186841 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
[root@localhost ~]#
[root@localhost ~]#
Linux 快速刪除大量小檔案方法
linux 快速刪除大量小檔案方法 當我們在linux系統中要刪除數萬或者數十萬甚至數百萬的檔案時使用rm rf 就不太好用,因為要等待很長一段時間。在這種情況之下我們可以使用linux系統命令rsync來巧妙的處理。rsync實際上用的是替換原理,處理數十萬個檔案也是秒刪。1.rsync安裝,有些...
Linux 快速刪除大量小檔案方法
如果某個掛載點上有大量小檔案存在,會占用較多的inodes資源 一但inodes資源耗盡,即便是該掛載裝置還有空閒空間,也是無法存入新的檔案的 查詢inodes資源使用較高的掛載點 df i head 1 df i grep v filesystem awk f 查詢inodes資源使用超過10 的...
linux快速刪除大量小檔案方法
當我們在linux系統中要刪除數萬或者數十萬甚至數百萬的檔案時使用rm rf 就不太好用,因為要等待很長一段時間。在這種情況之下我們可以使用linux系統命令rsync來巧妙的處理。rsync實際上用的是替換原理,處理數十萬個檔案也是秒刪。1.rsync安裝,有些系統預設安裝有該命令 ubuntu系...