답변:
사용하다:
find . -type f -size +4096c
4096 바이트보다 큰 파일을 찾으려면
그리고 :
find . -type f -size -4096c
4096 바이트보다 작은 파일을 찾습니다.
크기 스위치 후 +와-차이를 확인하십시오.
-size
스위치 설명 :
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is
used)
`c' for bytes
`w' for two-byte words
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
The size does not count indirect blocks, but it does count
blocks in sparse files that are not actually allocated. Bear in
mind that the `%k' and `%b' format specifiers of -printf handle
sparse files differently. The `b' suffix always denotes
512-byte blocks and never 1 Kilobyte blocks, which is different
to the behaviour of -ls.
find
AWK로 배관하지 않고 단독으로 유용 할 수 있다고 생각 합니다. 예를 들어
find ~ -type f -size +2k -exec ls -sh {} \;
물결표는 검색을 시작할 위치를 나타내며 결과는 2KB보다 큰 파일 만 표시해야합니다.
멋지게 만들기 위해 -exec
옵션을 사용하여 다른 디렉토리를 크기와 함께 나열하는 다른 명령을 실행할 수 있습니다 .
자세한 내용은의 매뉴얼 페이지를 참조하십시오find
.
AWK는 이런 종류의 일에 정말 쉽습니다. 다음과 같이 파일 크기 검사와 관련하여 수행 할 수있는 작업은 다음과 같습니다.
200 바이트보다 큰 파일을 나열하십시오.
ls -l | awk '{if ($5 > 200) print $8}'
200 바이트 미만의 파일을 나열하고 파일에 목록을 작성하십시오.
ls -l | awk '{if ($5 < 200) print $8}' | tee -a filelog
0 바이트의 파일을 나열하고 목록을 파일에 기록하고 빈 파일을 삭제하십시오.
ls -l | awk '{if ($5 == 0) print $8}' | tee -a deletelog | xargs rm
tee
와 같이 파일로 파이핑 하고 파일로 리디렉션하는 것의 차이점은 무엇입니까 ? ls -l > filelog
ls -l >> filelog
2000 바이트 이상 :
du -a . | awk '$1*512 > 2000 {print $2}'
2000 바이트 미만 :
du -a . | awk '$1*512 < 2000 {print $2} '