linux中的strip命令简介
一、下面是man strip获得到的信息,简单的说就是给文件脱掉外衣,具体就是从特定文件中剥掉一些符号信息和调试信息,使文件变小。
NAME
strip - Discard symbols from object files.
SYNOPSIS
strip [-F bfdname |--target=bfdname]
[-I bfdname |--input-target=bfdname]
[-O bfdname |--output-target=bfdname]
[-s|--strip-all]
[-S|-g|-d|--strip-debug]
[-K symbolname |--keep-symbol=symbolname]
[-N symbolname |--strip-symbol=symbolname]
[-w|--wildcard]
[-x|--discard-all] [-X |--discard-locals]
[-R sectionname |--remove-section=sectionname]
[-o file] [-p|--preserve-dates]
[--keep-file-symbols]
[--only-keep-debug]
[-v |--verbose] [-V|--version]
[--help] [--info]
objfile...
DESCRIPTION
GNU strip discards all symbols from object files objfile. The list of object files may include archives. At
least one object file must be given.
strip modifies the files named in its argument, rather than writing modified copies under different names.
2、实际测试。
I、测试代码strip.c:
#include <stdio.h>
void main()
{
printf("strip\n");
}
II、在liunx下执行gcc strip.c,会生成a.out。执行ls -la.out看一下文件大小,用file命令来查看文件
基本信息的,用nm命令来列出一个目标文件中的各种符号。
III、执行strip a.out,然后执行ls -la.out看一下文件大小,用file命令来查看文件基本信息
的,用nm命令来列出一个目标文件中的各种符号。很明显,文件已经变小了,已经没有相关的符号信息了。
IV、执行./a.out ,说明strip后文件变小了,但还是可以正常的运行。
综上所述,strip命令用于脱掉文件的衣服linux命令, 文件会变小, 其中的符号信息会失去。 那这个strip有什么
用呢? 很有用的! 原来的a.out比较大, 可以执行。 在strip之后, 文件变小了, 也是可以执行, 这就节省了很多空间.
其实, strip不仅仅可以针对可执行文件, 还能针对目标文件和动态库等.
在实际的开发中, 经常需要对动态库.so进行strip操作, 减少占地空间。 而在调试的时候(比如用addr2line), 就需要符号了。 因此, 通常的做法是: strip前的库用来调试, strip后的库用来实际发布, 他们两者有对应关系。 一旦发布的strip后的库出了问题, 就可以找对应的未strip的库来定位。
例如某个动态库strip前是50M左右,strip后是20M左右linux命令, 可见, 脱脱衣服还是有明显好处的。
远程登记系统将原本需要在房管局处理的信息申请、资料扫描上传等繁琐而耗费时间的工作前置到开发公司通过internet网络办理,这样,处理这些业务时不再受房管局办公条件局限和办公时间的限制。360手机安全专家介绍,部分窃听类软件会利用网络将窃听的内容发送给木马作者,关闭网络可以避免立即上传,但手机恢复网络之后还存在传输窃听数据的可能,因此为了安全起见,涉及机密谈话时还可以选择将手机电池拔出、关机。由于和彩云管家支持文件夹传输,所以在传输文件夹时,会根据文件夹内的所有文件大小、文件数来计算传输进度,如果最后上传的是几个很小的文件(但这些文件大小不足整个文件夹大小的1%)那么就会出现上传进度一直在99%的情况,当前所有文件传输完成后,进度还是会正常进到100%的。