디렉토리 구조에서 조건에 맞는 파일을 선택하는 방법


1

OSX (Mountain Lion)에 큰 디렉토리 트리가 있으며 특정 임계 값 파일 크기 미만의 모든 파일을 삭제해야합니다. 작은 파일을 제외한 디렉토리의 복제본을 만들거나 원래 디렉토리에서 간단히 삭제할 수 있습니다.

"찾기"사용에 대해 생각했지만 방법을 알아낼 수 있습니다.

감사


Find에 -size n [ckMGTP] 있음 512 바이트 블록에서 파일의 크기가 반올림되면 n입니다. 그것이 정확합니까, 아니면 작은 파일을 삭제하면서 512 바이트 이외의 것을 유지해야합니까? (최대 10kb의 파일에 대한 구문은 find . -size +10k -print-exec 및 rm과 결합하거나 -delete입니다)
Hennes

말할 필요도없이, 먼저 rm이 아닌 echo로 테스트하십시오 . 예 :find . -size +100k -exec echo Would delete {} \;
Hennes

답변:


2

사용할 수 있습니다 find. 12345 바이트보다 작은 모든 파일을 제거하려면 다음을 수행하십시오.

find somedir -type f -size -12345c -delete

사용하기 전에 이것을 테스트하십시오! 먼저 삭제하지 않고 찾기를 실행하여 영향을받는 파일을 확인할 수 있습니다.

find somedir -type f -size -12345c

c크기 수정 바이트를 계산하여 알려줍니다. 위의 Hennes는 올바른 길을 가고 있지만 OSX와 함께 제공되는 GNU find와 BSD find는 c바이트 수 수정자를 지원합니다 . 찾기에 대한 매뉴얼 페이지를 참조하십시오; 킬로바이트 또는 메가 바이트 단위의 크기 만 신경 쓰는 경우 사용 가능한 다른 옵션이 있습니다.


또는 간단히 find … -delete– 파이프가 필요하지 않습니다 xargs.
slhck December

감사. 에 대한 일종의 정신 차단이 -delete있습니다. 20 년 동안 xargs와 함께 사용했습니다. :)
Jim Stewart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.