How do I find out file size under UNIX / Linux operating system and store the same to a variable called s?
There are various ways and command tricks to find out file size under UNIX / Linux shell.
stat command example
You can display file or file system status with GNU/stat command. The -c option can be used to get specific information about file such as size in bytes:
$ stat -c %s fw8ben.pdf
Sample output:
74777
Refer to your local stat command man page for exact syntax, for example, FreeBSD stat works as follows:
$ stat -s file.txt
ls command example
Use ls command as follows to get human readable format:
$ ls -lah fw8ben.pdf | awk '{ print $5}'
Sample output:
74K
You can store output to a variable:
$ s=$(ls -lah idg.fw8ben.pdf | awk '{ print $5}')
$ echo $s
OR
$ s=$( stat -c %s fw8ben.pdf)
$ echo $s
🐧 9 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
s=$(du -h myfile | awk ‘{ print $1 }’)
“-h” == “print sizes in human readable format (e.g., 1K 234M 2G)”
Thanks for these tips.
Question: in — $ stat -c %s fw8ben.pdf —- what does %s do ? Any how does one refer to it i.e what is it ?
Tom
du -k Filename
Thanks for giving this command, for some reason stat -c option is not working on my mac terminal but this command does.
On Mac OS X (18.8.x), you may use
stat -f %z
did you try for android bash scripting, without wc, du, stat or awk?
still working on it, looks challenging
Does Android bash support this idiom?:
OIFS=”$IFS”
IFS=’ ‘
set -A size `ls -s “$1″`
IFS=$OIFS
filesize=${size[0]}
On MacOS X (10.8.x), you may use
stat -f %z
i prefer on Freebsd stat -f “%z” as well