How to use the command 'strip' (with examples)
- Linux
- December 25, 2023
The strip
command is used to discard symbols from executables or object files. By removing symbols, the size of the file can be reduced, which is especially useful for minimizing the size of binaries for deployment or distribution purposes. The strip
command can remove all symbols or specific types of symbols like debug symbols, saving disk space and improving performance.
Use case 1: Replace the input file with its stripped version
Code:
strip path/to/file
Motivation:
Replacing the input file with its stripped version is useful when you want to modify the file in-place without creating a separate output file. This can be helpful when you need to minimize the size of the file without changing its location or name.
Explanation:
strip
: The command name.path/to/file
: The path to the input file that will be stripped.
Example output:
If the file path/to/file
is initially 100 KB and contains symbols, after executing the command strip path/to/file
, the symbols will be discarded, resulting in a stripped file size of, let’s say, 80 KB. The path/to/file
will be replaced with the stripped version, reducing its size.
Use case 2: Strip symbols from a file, saving the output to a specific file
Code:
strip path/to/input_file -o path/to/output_file
Motivation:
Saving the output to a specific file can be helpful when you want to keep a copy of the original file while generating a stripped version. This allows you to verify the differences between the two files or easily compare their sizes.
Explanation:
strip
: The command name.path/to/input_file
: The path to the input file that will be stripped.-o path/to/output_file
: The flag-o
specifies the output file path where the stripped version of the input file will be saved.
Example output:
If the input file path/to/input_file
is initially 100 KB and contains symbols, executing the command strip path/to/input_file -o path/to/output_file
will create a new file at path/to/output_file
. This new file will be the stripped version of the input file, resulting in a reduced size of, let’s say, 80 KB. The original file path/to/input_file
will remain unchanged.
Use case 3: Strip debug symbols only
Code:
strip --strip-debug path/to/file.o
Motivation:
Stripping debug symbols from a file can be helpful when you want to reduce the size of the file for production use, but still want to retain the ability to debug and analyze the code during development. This allows you to separate the debug information from the final release, which can improve performance and protect sensitive information.
Explanation:
strip
: The command name.--strip-debug
: The flag--strip-debug
specifies that only debug symbols should be removed from the file.path/to/file.o
: The path to the object file that will have its debug symbols stripped.
Example output:
If the object file path/to/file.o
contains both regular symbols and debug symbols, executing the command strip --strip-debug path/to/file.o
will remove only the debug symbols, while preserving the regular symbols. This results in a reduced file size without affecting the functionality of the file. The output file will be the object file with the debug symbols stripped.