파일 크기를 감시할 때 기존에는 아는 선에서 방법을 조합해서 사용했습니다.
리눅스에서 보통 ls -l 하면 파일의 상세 정보가 나오는데 5번째 항목에 파일 크기가 나옵니다.
ls -l kk.jpg
-rw-r--r-- 1 arhis arhis 32277 Oct 28 10:42 kk.jpg
이것을 awk 로 5번째에 있는 항목을 출력했습니다.
ls -l kk.jpg | awk '{print $5}'
그런데 더 간단하고 pipe 안써도 되는 방법이 있었네요!!
stat --format=%s kk.jpg
32767
참고로 stat 옵션입니다.
더보기
$ stat --help
Usage: stat [OPTION]... FILE...
Display file or file system status.
Mandatory arguments to long options are mandatory for short options too.
-L, --dereference follow links
-f, --file-system display file system status instead of file status
-c --format=FORMAT use the specified FORMAT instead of the default;
output a newline after each use of FORMAT
--printf=FORMAT like --format, but interpret backslash escapes,
and do not output a mandatory trailing newline;
if you want a newline, include \n in FORMAT
-t, --terse print the information in terse form
--help display this help and exit
--version output version information and exit
The valid format sequences for files (without --file-system):
%a access rights in octal (note '#' and '0' printf flags)
%A access rights in human readable form
%b number of blocks allocated (see %B)
%B the size in bytes of each block reported by %b
%C SELinux security context string
%d device number in decimal
%D device number in hex
%f raw mode in hex
%F file type
%g group ID of owner
%G group name of owner
%h number of hard links
%i inode number
%m mount point
%n file name
%N quoted file name with dereference if symbolic link
%o optimal I/O transfer size hint
%s total size, in bytes
%t major device type in hex, for character/block device special files
%T minor device type in hex, for character/block device special files
%u user ID of owner
%U user name of owner
%w time of file birth, human-readable; - if unknown
%W time of file birth, seconds since Epoch; 0 if unknown
%x time of last access, human-readable
%X time of last access, seconds since Epoch
%y time of last data modification, human-readable
%Y time of last data modification, seconds since Epoch
%z time of last status change, human-readable
%Z time of last status change, seconds since Epoch
Valid format sequences for file systems:
%a free blocks available to non-superuser
%b total data blocks in file system
%c total file nodes in file system
%d free file nodes in file system
%f free blocks in file system
%i file system ID in hex
%l maximum length of filenames
%n file name
%s block size (for faster transfers)
%S fundamental block size (for block counts)
%t file system type in hex
%T file system type in human readable form
--terse is equivalent to the following FORMAT:
%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o %C
--terse --file-system is equivalent to the following FORMAT:
%n %i %l %t %s %S %b %f %a %c %d
자 이제 감시를 해야겠죠?
watch -d -n 2 "stat --format=%s kk.jpg"
watch -d -n 2 "stat --format=%s kk.jpg"
파일 크기 알아내는 명령을 2초마다(-n 2) 차이점을 강조(-d)해서 보여줍니다.
이제 스크립트에서 간편하게 값만 가져오거나 계속 감시할 수 있게 되었습니다.
'IT > shell' 카테고리의 다른 글
[ssh] 명령 주기 (0) | 2022.05.18 |
---|---|
[bash] 디렉토리 경로명 포함한 ls (0) | 2022.03.16 |
[shellscript] alias 무시하기 (0) | 2015.06.12 |