Linux: 파일의 여유 공간을 계산/찾는 방법은 무엇입니까?

Linux: 파일의 여유 공간을 계산/찾는 방법은 무엇입니까?

예를 들어, 파일의 여유 공간을 어떻게 찾을 수 있습니까?

fls -o 63 /images/diskimg.dd 
istat -o 63 /images/diskimg.dd 31
icat -o 63 /images/diskimg.dd | xxd | less

다음 중 Slackspace를 찾으려면 어떤 명령을 사용해야 합니까? 아니면 다른 것이 있습니까? Slackspace에 저장할 수 있는 정보를 어떻게 찾을 수 있나요?

-s 옵션을 사용하면 icat 명령을 사용하여 파일의 여유 공간을 볼 수 있지만 여유 공간 크기를 계산하고 icat으로 추가하는 것을 좋아하지 않는지 여전히 확실하지 않습니다.

답변1

귀하가 언급하는 "느슨한 공간"은 종종 파일 내의 희박한 공간이라고 합니다. ls& du명령을 사용하여 특정 파일이 얼마나 많은 희소 공간을 소비하는지 감지 할 수 있습니다.

에서 발췌Wikipedia 스파스 파일

발각

-s명령의 옵션은 ls블록 단위의 발자국과 -k블록 단위의 겉보기 크기를 표시합니다.

  $ ls -lks sparse-file

-h사람이 읽을 수 있는 형식으로 인쇄하는 데 사용할 수 있습니다.

또는 du 명령은 점유된 공간을 인쇄하고 ls겉보기 크기도 인쇄합니다. 이 옵션은 --block-size=1출력과 비교할 수 있도록 점유 공간을 블록이 아닌 바이트 단위로 인쇄합니다 ls.

  $ du --block-size=1 sparse-file
  $ ls -l sparse-file

먼저 스파스 파일을 만듭니다.

$ truncate -s 5M sparsy

지금 확인해 보세요:

$ ls -lks sparsy 
0 -rw-rw-r--. 1 saml saml 5242880 Apr  4 09:18 sparsy

$ ls -l sparsy 
-rw-rw-r--. 1 saml saml 5242880 Apr  4 09:18 sparsy

노트:출력의 첫 번째 열에는 가 ls -lks sparsy표시됩니다 0. 이는 파일이 sparsy100% 희소하고 실제 데이터 블록이 없으며 희소 데이터만 포함되어 있음을 의미합니다.

du명령은 동일한 내용을 표시합니다.

$ du --block-size=1 sparsy 
0   sparsy

희박하지 않은 파일의 경우 다음이 표시됩니다.

$ seq 1000 > non-sparsy

이제 다음 명령을 사용하여 확인합니다 ls.

$ ls -lks non-sparsy 
4 -rw-rw-r--. 1 saml saml 3893 Apr  4 09:27 non-sparsy

우리는 이것이 4블록의 공간을 소비한다는 것을 알 수 있습니다. 다음을 사용하여 du동일한 것을 보여줍니다 .

$ du --block-size=1 non-sparsy 
4096    non-sparsy

관련 정보