2015-01-03 2 views
0

find을 사용하여 2K (킬로바이트)보다 작은 파일을 찾으려고했지만 find . -size -2048cfind . -size -2k은 전혀 다른 결과를 나타 냈습니다.`find '는 파일의 크기를 어떻게 계산합니까?

그러나이 두 가지는 매뉴얼에 따라 동일하게 간주되어야합니다.

`c' for bytes 
`w' for two-byte words 
`k' for Kilobytes (units of 1024 bytes) 

나는 1.5k 정도의 파일을 가지고있다. -2048c이 파일을 찾을 수는 있지만 -2k는 아무 것도주지 않았습니다.

+1

당신은 어떤 조건에서 다른 결과를 얻고 있는지 설명해야 할 것입니다. –

+0

@almasshaikh하지만 2048c는 2k를 의미합니까? b를 사용하면 수학을해야합니다. – leetom

+0

http://stackoverflow.com/questions/10079740/find-files-with-size-in-unix – manoj

답변

2

이것은 버그가 아닙니다. POSIX는 *을 지정합니다. 나머지는 버려진 상태에서 비교를 수행 할 때 전체 기간만을 사용해야합니다. 즉, -size -2k은 실제로 크기가 1025 ~ 2047 바이트 인 파일을 찾지 못합니다.

* 기술적으로 블록 단위 크기 결정에만 지정됩니다. GNU find는 이것을 일관성을 위해 킬로바이트 단위로 확장합니다.

+0

그러면'-size -20kc'는'-size -3k'와 실제로 같은 의미입니까? – leetom

+0

아니요,'-size -3k'는 2048 바이트 크기의 파일을 포함하기 때문입니다. –

+0

고맙습니다. – leetom

관련 문제