500M보다 큰 경우 파일 검색 및 압축 방법

500M보다 큰 경우 파일 검색 및 압축 방법

500M보다 크고 1일보다 오래된 파일을 찾아야 하며 이러한 파일을 압축해야 합니다. 확장자가 .gz인 파일도 생략해야 합니다. 이것이 어떻게 달성될 수 있습니까?

답변1

LC_ALL=C find . ! -name '*.gz' \
                -type f \
                -size +"$((500*1024*1024))c" \
                -mtime +0 \
                -exec gzip {} +

이는 압축에 사용됩니다 gzip. 또한 다양한 압축 형식을 사용하는 다른 압축 유틸리티를 보거나 알아 xz보십시오 .bzip2compress

일부 find구현(예: GNU) find-size +500M.

진행 상황에 대한 정보를 얻을 수 -v있는 옵션을 추가할 수 있습니다 .gzip

file둘 다 존재 하는 경우 file.gz확인 메시지가 표시됩니다. -f강제로 압축하려는 경우 또는 덮어 < /dev/null쓰는 것을 원하지 않고 file.gz프롬프트에 응답하지 않으려는 경우 이 옵션을 추가하십시오.

-mtime +0나이가 정수 일수로 반올림되었는지 확인하세요 .아래에0보다 크므로 이 값은 1일 이상 지난 파일에 적용되며 -size +500M크기(MB 단위의 정수)가 반올림되었는지도 확인합니다.위로보다 크므로 500크기가 큰 파일의 경우에도 마찬가지입니다.엄격하게500M(524288000바이트)보다 큽니다.

이는 파일 이름의 시작 부분에 현재 로케일에서 유효한 문자가 포함되어 있는지 여부에 관계없이 이름이 다음으로 끝나는 파일이 일치하는지 LC_ALL=C확인하기 위한 것입니다 . 그러나 이로 인해 오류 메시지의 언어에 영향을 미치는 크기 효과가 있을 수 있습니다.*.gz.gz

실제로 실행하지 않고 무엇을 할지 확인하고 싶다면 gzip로 바꾸세요 echo gzip.

관련 정보