최초 리뷰
어제는 디렉토리에 있는 많은 파일을 삭제하는 매우 흥미로운 방법을 보았습니다. 이 방법은 http://www.quora.com/How-can-someone-rapidly-delete-400-000-files의 Zhenyu Lee에서 제공됩니다.
그는 find나 xargs를 사용하지 않고 rsync의 강력한 기능을 창의적으로 활용했으며 rsync –delete를 사용하여 대상 폴더를 빈 폴더로 대체했습니다. 그 후, 다양한 방법을 비교하기 위해 실험을 했습니다. 놀랍게도 Lee의 방법은 다른 방법보다 훨씬 빨랐습니다. 아래는 내 리뷰입니다.
환경:
CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
MEM: 4G
HD: ST3250318AS: 250G/7200RPM
방법
파일 수
삭제 시간
rsync -a –delete 비어 있음/ s1/ 1000000 6m50.638s
find s2/ -type f -delete 1000000 87m38.826s
find s3/ -type f | 000000 83m36.851s
find s4/ -type f | xargs -L 100 -P 100 rm 1000000 78m4.658s –delete 및 –exclude, 기준에 맞는 파일을 선택적으로 삭제할 수 있습니다. 또 다른 요점은 이 방법이 다른 용도로 이 디렉터리를 유지해야 할 때 완벽하다는 것입니다.
재평가
몇일 전 Keith-Winstein이 Quora에 올린 이 게시물에 답글을 달고 작업이 너무 오래 지속되어 이전 평가를 복사할 수 없다고 말했습니다. 명확히 하자면, 이 숫자는 너무 큽니다. 아마도 지난 몇 년간 내 컴퓨터가 너무 많은 작업을 수행했기 때문일 것이며 검토 시 일부 파일 시스템 오류가 있었을 수도 있습니다. 하지만 그게 이유인지는 잘 모르겠습니다. 자, 이제 새로운 컴퓨터로 하루를 보내며 다시 리뷰를 작성했습니다. 이번에는 더 자세한 정보를 제공하는 /usr/bin/time을 사용했습니다. 아래는 새로운 결과입니다.
(1,000,000개의 파일이 있을 때마다. 각 파일의 크기는 0입니다.)
명령
경과됨
시스템 시간
%CPU
cs(Vol/Invol)
rsync -a –delete empty/ a 10.60 1.31 95 106/22
find b/ -type f -delete 28.51 14.46 52 14849/11
find c/ -type f | xargs -L 100 rm 41.69 20.60 54 3704 8/15074
d 찾기 / -type f | xargs -L 100 -P 100 rm 34.32 27.82 89 929897/21720
원본 출력