mcs - 处理目标文件的注释部分
mcs [-cdHpVz] [-a string] [-A file] [-n name] file...
mcs 命令用于显示内容、对内容进行重复数据删除或将内容附加到 ELF 目标文件中的注释部分。它还可用于删除注释或非注释部分以及零 SHT_PROGBITS 部分。除非另有说明,否则会处理名为 。comment 的部分。mcs 无法修改或删除包含在段中的部分。
如果输入文件是归档文件(请参见 ar.h (3HEAD)),则会将归档文件视为一组独立文件。例如,如果指定了 –a 选项,则字符串会附加到归档中每个目标文件的注释部分;如果归档成员并非目标文件,则它会保留不变。
mcs 必须给出下方说明的一个或多个选项。它会以给定顺序将每个选项应用于每个文件。
对于附加操作,如果目标文件尚不包含带有指定名称的部分,则 mcs 会在执行附加操作之前使用该名称创建新的空白部分。
支持以下选项:
将 string 附加到目标文件的注释部分。
将给定文件的内容附加到目标文件的注释部分。
通过重复数据删除压缩目标文件注释部分的内容。会删除所有重复条目。不会打乱剩余条目的顺序。
删除目标文件的指定部分。
使用 –p 时,会禁止文件的名称输出以及正常插入至每个文件输出间的任何空白行。
如果名称不是 。comment,则请指定要访问的部分的名称。缺省情况下,mcs 会处理名为 .comment 的部分。mcs 会使用多个 – n 选项以允许指定多个部分。如果各个部分采用注释部分的格式,则 mcs 始终会处理这些部分。
在标准输出中列显注释部分的内容。除非 –H 一起使用,否则每个输出的部分都会使用从中提取它的文件的名称作为前缀,对归档文件使用 file[member_name ]: 格式,对其他文件使用 file: 格式。
输出版本信息。
使用零替代任何 SHT_PROGBITS 部分,同时保留这些部分的原始属性。
输出用法消息并立即退出。
以下条目
example% mcs -p elf.file
列显 elf.file 文件的注释部分。
示例 2 将字符串附加到注释部分以下条目
example% mcs -a xyz elf.file
将字符串 xyz 附加到 elf.file 的注释部分。
示例 3 分离指定的不可分配部分尽管 mcs 主要用于注释部分,但它可对任何不可分配部分进行操作。strip 命令会删除不可分配部分的预定义选定项,与其相对,mcs 可用于删除特定部分。以下条目
example% mcs -d -n .annotate elf.file
从 elf.file 文件中删除名为 。annotate 的部分。
临时文件
有关下列属性的说明,请参见 attributes(7):
|
ar(1)、as(1)、elfcompress(1)、ld(1)、strip(1)、elf(3ELF)、ar.h(3HEAD)、a.out(5)、attributes(7)
当 mcs 使用 –d 选项删除某部分时,它会尝试将类型 SHT_REL 部分和 sh_info 部分标题字段所指向的目标部分绑定在一起。如果要删除某一部分,则 mcs 会尝试删除对中的另一部分。
–z 选项会删除 SHT_PROGBITS 部分的内容,同时保留目标文件的原始 ELF 结构。将会限制使用 –z 选项的需要。然而,如果 SHT_PROGBITS 部分的内容不相关,则可使用该选项来提供目标文件。
mcs 命令无法修改核心文件。