>  기사  >  백엔드 개발  >  Linux 팁: 백만 개의 파일을 한 번에 삭제하는 가장 빠른 방법

Linux 팁: 백만 개의 파일을 한 번에 삭제하는 가장 빠른 방법

伊谢尔伦
伊谢尔伦원래의
2016-11-25 15:45:391258검색

최초 리뷰

어제는 디렉토리에 있는 많은 파일을 삭제하는 매우 흥미로운 방법을 보았습니다. 이 방법은 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

원본 출력

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.