많은 파일이 포함된 폴더의 많은 파일에 대해 rm을 수행하는 방법

많은 파일이 포함된 폴더의 많은 파일에 대해 rm을 수행하는 방법

방금 Linux에서 몇 가지 실험을 했는데 같은 폴더에 많은 파일이 생겼습니다. 이제 내가하려고 할 때

rm -f 폴더/*.png

알겠어요

-bash: /bin/rm: 매개변수 목록이 너무 깁니다.

이 문제를 극복할 수 있는 간단한 방법이 있습니까?


자신의 작업:

내 생각에는 rm의 결과를 반복하는 보기 흉한 스크립트를 만들 수 있을 것 같습니다.

ls /폴더/ |head-100 | grep ".*\.png"

하지만 실제로 이 작업을 수행하는 더 쉬운 Gnu 방법이 있어야 할까요?

답변1

나는 다음과 같은 일을 할 것입니다 :

ls -1 | grep "\.png$" | xargs -L 50 rm -f 

로 시작하는 항목만 일치(및 제거)합니다 .png.

답변2

rm -f folder/*.png또는 더 간단한 을 사용하면 rm *rm이 아닌 쉘이 *를 모든 관련 파일로 확장합니다. 그런 다음 rm을 호출하고 모든 파일 이름을 확장합니다. (예를 들어 "rm 파일 이름1 파일 이름2 파일 이름3 파일 이름4 파일 이름5 파일 이름6 파일 이름7 .... 파일 이름12345"인 경우

목록이 너무 길어서 통과할 수 없으면 이 오류가 발생합니다.

해결 방법: 작은 덩어리로 나누거나 케이싱을 건너뛰세요. 예를 들어 --delete를 사용하여 찾기를 선택하는 것이 좋습니다.

  • find /path/to/file -name "*.PNG" -delete \;
  • find /path/to/file -name "*.PNG" -exec rm \;(각 파일에 대해 rm을 한 번 실행)
  • find /path/to/file -name "*.PNG" -delete + (rm에 전달할 수 있을 만큼 작은 덩어리로 나눕니다)

첫 번째 옵션은 제가 자주 사용하는 옵션입니다. 먼저 -print를 사용하여 테스트하세요.

관련 정보