나는 이것을 사용하여 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 )