![stat -c %B와 stat -c %o의 차이점은 무엇입니까? [복사]](https://linux55.com/image/131955/stat%20-c%20%25B%EC%99%80%20stat%20-c%20%25o%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
학문적 목적으로 파일의 내부 조각화를 보여주려고 합니다. 내가 이해하는 바로는 내부 조각화는 파일 크기와 파일을 포함하는 모든 블록 크기 간의 차이로 나타날 수 있습니다. 블록 수를 찾는 것은 쉽습니다. 내 문제는 청크의 크기를 찾는 것입니다. stat -c %o가 반환한 숫자입니까? (4096) 또는 stat -c %B (512).
둘 사이의 차이점은 무엇입니까? 온라인에서 답변을 찾으려고 노력했지만 점점 더 혼란스러워지고 있습니다. blockdev --getbsz /dev/sda2와 같은 다른 명령은 내 파일 시스템 블록 크기를 4096으로 표시합니다. 그러나 계산을 해본 결과 512가 내가 찾고 있는 답변에 더 적합한 것 같습니다(내가 테스트하고 있는 파일 크기는 44933이고 블록 수는 88입니다. 여기에 4096을 곱하면 360448이 됩니다. 파일 크기의 8배가 넘습니다).
답변1
설명서에서 stat(1)
찾을 수 있습니다(Centos7 버전에서 가져온 것이며 stat(1)
다른 소스는 다를 수 있음).
%b number of blocks allocated (see %B)
%B the size in bytes of each block reported by %b
%o optimal I/O transfer size hint
이는 첫 번째는 파일 시스템에 할당된 블록에 관한 것이고, 두 번째는 해당 파일의 I/O와 관련된 값임을 나타냅니다. 명사(할당된 청크) 대 동사(해당 청크의 전달)는 다소 다릅니다.