137795개의 파일이 들어 있는 폴더가 있습니다. 모두 삭제해야 해요. rm *
내가 달리면 -bash: /bin/rm: Argument list too long
. 이 오류를 어떻게 극복할 수 있나요?
답변1
보시다시피 디렉토리를 삭제할 필요는 없으며 내부의 파일만 삭제할 수 있습니다. 다시 만들 수 있도록
rm -r /path/to/dir && mkdir /path/to/dir
아니면 안에 있는 파일을 삭제해도 됩니다.
find /path/to/dir -type f -delete
Fair First가 더 빠르게 작동합니다.
UPD. 디렉터리 크기 find
가 fsck
.세부 사항.
답변2
해결책 #1:
find /path/to/dir -delete
해결책 #2:
rm a*;
rm b*;
rm c*;
etc
답변3
사용하는 것이 find
아마도 최선의 선택일 것입니다. 질문에 대한 다른 답변 중 일부는 디렉토리 내부의 모든 것을 삭제하지 않거나 디렉토리 자체를 삭제합니다. 특수문자 없이 사용 ls
하거나 일부 옵션과 함께 사용할 수 있습니다 .xargs
find
ls -1 | xargs rm -r
또는
find . -depth -path ./.* -prune -o -not -name . -delete
이는 현재 디렉터리에서 .
( )로 시작하는 모든 항목을 무시 하고 최상위 디렉터리( )가 아닌 다른 모든 파일이나 디렉터리를 삭제합니다. "디렉터리가 비어 있지 않습니다" 오류를 방지하기 위해 먼저 디렉터리 내부를 살펴 봅니다 . 시스템에서 이 매개변수를 사용할 수 없는 경우에 사용됩니다 .-prune
.
-depth
-not
!