gpt4 book ai didi

linux - cut 和 dd 在二进制文件上的不同结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:10 25 4
gpt4 key购买 nike

我的环境:

CentOS 6.5

我需要提取 ELF 文件的某些部分。

当我如下使用dd命令时,没有问题:

$dd if=a.out of=a.cut1 bs=1 skip=16    

另一方面,当我按如下方式使用 cut 命令时,创建的文件比我预期的要小得多:

$cut --bytes=16- a.out > a.cut2


例如,我通过使用 gcc (v. 4.4.7) 编译以下示例 c 程序来创建 a.out:

#include <stdio.h>

int main()
{
printf("Hello world\n");
}

然后,我执行上面的 ddcut 命令,我有以下大小的文件:

a.out - 6415 bytes
a.cut1 - 6399 bytes
a.cut2 - 6356 bytes

我想知道为什么 cut 命令减少的大小比我指定的多。

最佳答案

cut 将跳过每行的前 16 个字节dd 不关心行并且只跳过前 16 个字节整个文件。

如果文件包含换行符 - 这对二进制文件完全有效 - 然后 cut 将产生与 dd 不同的结果。

关于linux - cut 和 dd 在二进制文件上的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29381522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com