폴더에서 많은 많은 파일을 제거하십시오.

폴더에서 많은 많은 파일을 제거하십시오.

137795개의 파일이 들어 있는 폴더가 있습니다. 모두 삭제해야 합니다. rm *내가 달리면 -bash: /bin/rm: Argument list too long. 이 오류를 어떻게 극복할 수 있나요?

답변1

내가 볼 수 있듯이 dir 을 제거할 필요는 없고 내부에 있는 파일만 제거할 필요가 있습니다. 그래서 다시 만들 수 있습니다.

rm -r /path/to/dir && mkdir /path/to/dir

또는 안에 있는 파일만 삭제해도 됩니다.

find /path/to/dir -type f -delete

첫 번째 것이 더 빨리 작동합니다.

UPD. 디렉터리 크기는 이후에만 줄어들기 때문에 find공간 소비 관점에서 를 사용하는 것이 최적이 아닐 수 있습니다 fsck.세부.

답변2

해결 방법 #1:

find /path/to/dir -delete

해결 방법 #2:

rm a*;

rm b*;

rm c*;

etc

답변3

사용하는 것이 find아마도 가장 좋은 방법 일 것입니다. 다른 답변의 문제점 중 일부는 디렉토리 내부의 모든 것을 삭제하지 않거나 디렉토리 자체를 삭제하는 것입니다. 특수 문자가 없는 경우 with 를 사용하거나 특정 옵션과 ls함께 사용할 수 있습니다 .xargsfind

ls -1 | xargs rm -r

또는

find . -depth -path ./.* -prune -o -not -name . -delete

이렇게 하면 현재 디렉터리에서 .( -prune)로 시작하는 모든 내용이 무시되고 최상위 디렉터리( )가 아닌 다른 모든 파일이나 디렉터리가 제거됩니다 .. 에서는 먼저 디렉터리 내부를 살펴 보게 -depth되어 '디렉토리가 비어 있지 않음' 오류를 방지할 수 있습니다. -not시스템에서 인수를 사용할 수 없으면 를 사용 하십시오 !.

관련 정보