在某些情况下,可能会用到全为某个值的 bin 文件,可使用 dd 命令配合 /dev/zero 这个特殊的文件设备,来生成全为 0x00 的 bin 文件。然后再使用 tr 命令,替换0x00 为 特定的值,即可生成全是某个值的bin文件。

命令说明:

  1. Linux dd 命令
  2. Linux tr命令

1.生成全是0的bin文件

制作全是0的bin文件,文件大小为(bs * count):

# 生成512byte全为0的bin文件:
dd if=/dev/zero of=all_0x00.bin bs=1 count=512# 生成5K全为0的bin文件:
dd if=/dev/zero of=all_0x00.bin bs=1K count=5# 生成5M全为0的bin文件:
dd if=/dev/zero of=all_0x00.bin bs=1M count=5

2.生成全是FF的bin文件

使用 tr 命令,替换0x00 为 0xFF,命令如下所示:

#生成512byte的全FF的bin文件
dd if=/dev/zero  bs=1 count=512 | tr "\000" "\377" > all_0xff.bin#生成5K的全FF的bin文件
dd if=/dev/zero  bs=1K count=5 | tr "\000" "\377" > all_0xff.bin#生成5M的全FF的bin文件
dd if=/dev/zero  bs=1M count=5 | tr "\000" "\377" > all_0xff.bin

其中 \000,\377 为八进制数,即分别为0x00,0xFF。这里使用tr命令将0x00替换为0xff。

3.合并bin文件

cat all_0x00.bin all_0xff.bin > all.bin

4.截取bin文件

从bin文件的(bs * skip)位置,截取(bs * count)长度的bin文件:

# 从输入文件头部偏移(1 * 0)开始,截取(1 * 512)成单独文件
dd if=all.bin bs=1 count=512 skip=0 of=0x00_0xff.bin# 从输入文件头部偏移(1 * 32)byte开始,截取(1 * 512)成单独文件
dd if=all.bin bs=1 count=512 skip=32 of=0x00_0xff.bin# 从输入文件头部偏移(1K * 2)byte开始,截取(1K * 512)成单独文件
dd if=all.bin bs=1K count=512 skip=2 of=0x00_0xff.bin# 从输入文件头部偏移(1M * 2)byte开始,截取(1M * 3)成单独文件
dd if=all.bin bs=1M count=3 skip=2 of=0x00_0xff.bin

5.向bin文件的指定位置写入内容

向bin文件的(bs * seek)位置写入指定的十六进制数,文件大小保持不变:

# 将0x11 0x22写入bin文件的开头,bin文件大小不变
echo -e -n "\x11\x22" | dd bs=1 seek=0 conv=notrunc of=all_0xff.bin# 将0x33 0x44写入bin文件的(1 * 256 = 256)位置,bin文件大小不变
echo -e -n "\x33\x44" | dd bs=1 seek=256 conv=notrunc of=all_0xff.bin# 将0x55 0x66写入bin文件的(1K * 1 = 0x400)位置,bin文件大小不变
echo -e -n "\x55\x66" | dd bs=1K seek=1 conv=notrunc of=all_0xff.bin

6.参考博文

命令生成自定义 bin 文件

Linux下制作bin文件,并对其进行截取、合并、修改相关推荐

  1. linux .bin文件处理,linux下制作.bin文件方法简介

    linux 下制作二进制 .bin 的文件 制做方法是使用cat 命令将执行脚本和打包文件同事放到一个.bin的文件里 这样安装的时候只要使用一个包,直接执行该包即可安装完毕,简单方便. 例:制作安装 ...

  2. linux下制作ISO文件

    http://blog.chinaunix.net/uid-10449864-id-2956771.html linux下制作ISO文件有几种方法,分别如下: 1,从光盘中制作ISO文件 cp /de ...

  3. linux下通过bin文件来制作img镜像文件

    通过DE1的学习,在生成preloader的过程中,我们生成了如下的bin文件 在启动SD卡的时候,需要uboot.image文件,因此将该bin文件转换成image文件,这里采用linux来转换.首 ...

  4. 如何在 Linux 下执行 bin 文件

    什么是 .bin 文件? .bin 文件是在 Linux 和类 Unix 操作系统上的自执行文件.在执行 .bin 文件之前,你需要给它执行权限.这可以通过命令行或者 gui 完成. chmod +x ...

  5. linux下安装bin文件

    添加可执行权限 1. chmod +x package.bin 直接运行该文件,如果是在ubuntu下,需要加上sudo,需要超级用户的权限 2. ./package.bin

  6. linux diff 补丁文件夹,LINUX下制作补丁文件 diff,patch

    diff(differential) 功能说明:比较文件的差异. 语 法:diff [-abBcdefHilnNpPqrstTuvwy][-;][-C ;][-D ;][-I ;][-S ;][-W ...

  7. linux下制作makefile文件

    1.最简单的一种当然也是最麻烦的一种(makefile 中的代码如下,其中hello.cpp是文件名,hello是编译后的命名.使用方法是直接输入 make) hello:hello.cpp g++ ...

  8. linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

    一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/415 ...

  9. Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)

    Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...

最新文章

  1. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
  2. 不是说一个源程序中只能有一个public类?怎么内部类可以用public?
  3. NSLayoutConstraint
  4. flash air 解析html,AIR 程序内部显示网页,并可以点击浏览的方法(HTMLLoader、StageWebView)...
  5. 演示方法:有抱负的分析师
  6. servlets_jQuery Ajax – Servlets集成:构建完整的应用程序
  7. TensorFlow的基本介绍及Hello,world
  8. jdbc驱动程序_JDBC操作数据库的步骤
  9. nodejs 安装 nrm
  10. ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
  11. android改包名
  12. handler和thread之间如何传输数据_HTTP和TCP之间的关系
  13. 我的cocos2d-x集成sharesdk之旅(转)
  14. c语言程序设计5pdf,C语言程序设计5.pdf
  15. UI 自动化框架对比2
  16. 树莓派Pico 开机自动运行程序
  17. 视频接口:DP接口和HDMI接口介绍,看完你就懂了
  18. Java解惑之长整型
  19. linux桌面lxde 安装_Ubuntu怎么安装轻量级的LXDE桌面?
  20. laravel Eloquent whereIn 多个字段

热门文章

  1. 初步浅谈 celery
  2. 51单片机外设篇:点阵式LCD
  3. java程序员 待遇_现在的java程序员薪资待遇怎么样?
  4. 国内外一些ip反查域名的网站
  5. 自然语言处理(NLP)之命名实体识别
  6. 三角网格模型及基于RBF隐曲面方程求解的曲面重建
  7. 自控考研复习 自我梳理(三) 知识来自网络,纯为总结侵权即删(二阶系统)
  8. 神经网络的功能特点包括,神经网络的功能特点是
  9. jQuery-链接api实现星座运势和手机号归属地查询
  10. sharesdk分享qq空间-错误码1001