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
함께 사용할 수 있습니다 .xargs
find
ls -1 | xargs rm -r
또는
find . -depth -path ./.* -prune -o -not -name . -delete
이렇게 하면 현재 디렉터리에서 .
( -prune
)로 시작하는 모든 내용이 무시되고 최상위 디렉터리( )가 아닌 다른 모든 파일이나 디렉터리가 제거됩니다 .
. 에서는 먼저 디렉터리 내부를 살펴 보게 -depth
되어 '디렉토리가 비어 있지 않음' 오류를 방지할 수 있습니다. -not
시스템에서 인수를 사용할 수 없으면 를 사용 하십시오 !
.