나중에 파일을 삭제하기 위한 찾기 출력 가져오기

나중에 파일을 삭제하기 위한 찾기 출력 가져오기

이 명령의 결과를 가져오고 싶습니다.

find . -type f -size +200M -exec ls -lh {} \;

내용을 어떤 형식의 변수에 저장한 다음 발견된 파일을 삭제합니다.

어떻게 해야 하나요?

답변1

find파일을 제거하기 위해 결과를 변수에 저장할 필요는 없습니다 (언급하지 않은 특정 요구 사항이 없는 한). 이를 수행하는 find특수 매개 변수가 제공됩니다 .-delete

find . -type f -size +200M -print -delete

처럼명령 출력을 구문 분석하는 ls것은 권장되지 않습니다..

에서 반환된 파일을 정말로 구문 분석하려면 find다음과 같이 해야 합니다.

find . -type f -size +200M -print0 | xargs -0 rm -v

널 문자가 포함된 쉘 변수를 유지할 수 없고 공백으로 인해 스크립트가 중단되는 것을 원하지 않기 때문에(이로 인해거대한 벌레), 임시 파일에 목록을 저장하거나 데이터를 직렬화하는 것이 해결 방법이 될 수 있습니다(예: base64).

관련 정보