How to use the command 'size' (with examples)
- Linux
- December 25, 2023
The size
command is a tool for displaying the sizes of sections inside binary files. It is especially useful in analyzing the size of different sections within object or executable files. By default, size
displays the sizes in bytes, but it also provides options to display the sizes in different numerical radix systems such as octal, decimal, and hexadecimal.
Use case 1: Display the size of sections in a given object or executable file
Code:
size path/to/file
Motivation: This use case is useful when you want to obtain information about the size of various sections within a binary file. By knowing the size of each section, you can understand how the file is structured and the amount of memory it requires.
Explanation: In this use case, we simply provide the path to the object or executable file as an argument to the size
command. This will display the sizes of all sections in the specified file.
Example output:
text data bss dec hex filename
1000 16 512 1528 5f8 path/to/file
In the example output, the size
command displays the sizes of the text, data, and bss sections in bytes. The ‘dec’ column represents the total size in decimal, while the ‘hex’ column represents the total size in hexadecimal.
Use case 2: Display the size of sections in a given object or executable file in octal
Code:
size -o|--radix=8 path/to/file
Motivation: Displaying the sizes of sections in octal is useful when working with systems that use octal numbering. It can provide a different perspective on the memory requirements of a binary file.
Explanation: In this use case, we use the -o
or --radix=8
option in addition to the path to the file. This tells the size
command to display the sizes of sections in octal.
Example output:
text data bss oct hex filename
1750 20 1000 2714 aaa path/to/file
In the example output, the sizes of the text, data, and bss sections are displayed in octal in the ‘oct’ column. The ‘hex’ column still represents the total size in hexadecimal.
Use case 3: Display the size of sections in a given object or executable file in decimal
Code:
size -d|--radix=10 path/to/file
Motivation: Displaying the sizes of sections in decimal is the default behavior of the size
command. However, specifying this option explicitly can be useful when you want to emphasize decimal values or when working with systems that utilize decimal numbering.
Explanation: In this use case, we use the -d
or --radix=10
option along with the file path. This instructs the size
command to display the sizes of sections in decimal.
Example output:
text data bss dec hex filename
4096 32 512 4640 1220 path/to/file
In the example output, the sizes of the text, data, and bss sections are displayed in decimal in the ‘dec’ column. The ‘hex’ column still represents the total size in hexadecimal.
Use case 4: Display the size of sections in a given object or executable file in hexadecimal
Code:
size -x|--radix=16 path/to/file
Motivation: Displaying the sizes of sections in hexadecimal is useful for programmers and developers who are more comfortable working with hex numbers. It can also be beneficial when debugging or analyzing binary files.
Explanation: In this use case, we use the -x
or --radix=16
option along with the file path. This tells the size
command to display the sizes of sections in hexadecimal.
Example output:
text data bss dec hex filename
4000 16 512 f30 1270 path/to/file
In the example output, the sizes of the text, data, and bss sections are displayed in hexadecimal in the ‘hex’ column. The ‘dec’ column still represents the total size in decimal.
Conclusion:
The size
command is a powerful tool for analyzing the sizes of sections within binary files. By using different options, such as specifying the radix system, you can customize the output to fit your needs. Whether you need sizes in octal, decimal, or hexadecimal, the size
command provides the flexibility to display the information in the desired format.