{size}보다 큰 모든 파일 *.html을 나열하는 방법(일부 {*parts*} 제외)

{size}보다 큰 모든 파일 *.html을 나열하는 방법(일부 {*parts*} 제외)

파일을 나열하려면 명령이 필요합니다. 하지만 세 가지 질문이 있습니다.

  1. .HTML다음으로 끝나는 파일을 원합니다 ..HTM
  2. 파일 이름에 다음 부분이 포함되어 있으면 google docs제외하고 싶습니다.form
  3. 1kb보다 큰 파일만 원합니다

이 시점에서 나는 다음 명령을 받았습니다.

ls *.html *.htm | grep -v 'backup\|form\|docs\|google'

그것은 아주 잘 작동합니다. 다음 단어는 제외됩니다: backup\|form\|docs\|google - 그러나 "1kb"보다 작은 파일은 제외하고 싶습니다.

{size}보다 "큰" 파일을 표시하는 모든 스크립트는 "find"를 사용합니다. 누구든지 어떤 아이디어가 있습니까?

답변1

GNU를 사용하여 다음을 찾으세요.

find . -size +1k -type f -iregex '.*\.html?$' \
    -not -iregex '.*\(backup\|form\|docs\|google\).*'

.*\.html?$이름이 정규식과 일치 하지만 정규식과 일치하지 않는 1k 이상의 모든 파일을 찾습니다..*\(backup\|form\|docs\|google\).*

하위 디렉토리가 아닌 현재 디렉토리에만 파일이 필요한 경우 이 -maxdepth 1옵션을 사용하십시오.

find . -maxdepth 1 -size +1k -type f -iregex '.*\.html?$' \
    -not -iregex '.*\(backup\|form\|docs\|google\).*'

옵션을 추가 -exec ...하거나 .-print0xargs -0r

답변2

find . -size +1k | grep '.htm' | grep -v 'backup\|form\|docs\|google'

관련 정보