du를 사용하여 파일 크기를 추출하는 방법

du를 사용하여 파일 크기를 추출하는 방법

나는 이것을 사용하여 du패키저 스크립트에서 결과 아카이브의 파일 크기를 가져옵니다.

> du -smh archive.zip
51M    archive.zip

51M인쇄할 수 있도록 부품을 변수에 할당하고 싶습니다 .

Archive size: 51M

어떻게 해야 하나요?

답변1

다음을 수행할 수 있습니다.

$ variable=$(du -smh archive.zip | awk '{print $1}')

세부 사항

awk출력은 구문 분석되어 열로 구분됩니다. 첫 번째 열의 결과만 원합니다. $( .. ) 코드는 명령을 실행하고 결과를 반환합니다.

답변2

또는 stat사용 가능한 경우 이 프로그램을 사용하십시오(일반적으로 Linux에서는 기본값). 사람이 읽을 수 있는 K/M/G 변환은 없지만 숫자를 얻기 위해 다른 것이 필요하지 않거나 멋진 형식 옵션이 있습니다.

sauer@humpy:~$ stat -c "%s" /etc/passwd
2302
sauer@humpy:~$ stat -c "%n size: %s bytes" /etc/passwd /etc/shadow
/etc/passwd size: 2302 bytes
/etc/shadow size: 1389 bytes

답변3

awk는 칼로 자르는 데 필요한 것보다 더 큰 망치입니다.

variable=$(du -smh archive.zip | cut -f1 )

관련 정보