Linux下制作bin文件,并对其进行截取、合并、修改
在某些情况下,可能会用到全为某个值的 bin 文件,可使用 dd 命令配合 /dev/zero
这个特殊的文件设备,来生成全为 0x00 的 bin 文件。然后再使用 tr
命令,替换0x00 为 特定的值,即可生成全是某个值的bin文件。
命令说明:
- Linux dd 命令
- 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文件,并对其进行截取、合并、修改相关推荐
- linux .bin文件处理,linux下制作.bin文件方法简介
linux 下制作二进制 .bin 的文件 制做方法是使用cat 命令将执行脚本和打包文件同事放到一个.bin的文件里 这样安装的时候只要使用一个包,直接执行该包即可安装完毕,简单方便. 例:制作安装 ...
- linux下制作ISO文件
http://blog.chinaunix.net/uid-10449864-id-2956771.html linux下制作ISO文件有几种方法,分别如下: 1,从光盘中制作ISO文件 cp /de ...
- linux下通过bin文件来制作img镜像文件
通过DE1的学习,在生成preloader的过程中,我们生成了如下的bin文件 在启动SD卡的时候,需要uboot.image文件,因此将该bin文件转换成image文件,这里采用linux来转换.首 ...
- 如何在 Linux 下执行 bin 文件
什么是 .bin 文件? .bin 文件是在 Linux 和类 Unix 操作系统上的自执行文件.在执行 .bin 文件之前,你需要给它执行权限.这可以通过命令行或者 gui 完成. chmod +x ...
- linux下安装bin文件
添加可执行权限 1. chmod +x package.bin 直接运行该文件,如果是在ubuntu下,需要加上sudo,需要超级用户的权限 2. ./package.bin
- linux diff 补丁文件夹,LINUX下制作补丁文件 diff,patch
diff(differential) 功能说明:比较文件的差异. 语 法:diff [-abBcdefHilnNpPqrstTuvwy][-;][-C ;][-D ;][-I ;][-S ;][-W ...
- linux下制作makefile文件
1.最简单的一种当然也是最麻烦的一种(makefile 中的代码如下,其中hello.cpp是文件名,hello是编译后的命名.使用方法是直接输入 make) hello:hello.cpp g++ ...
- linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置
一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/415 ...
- Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)
Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...
最新文章
- 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
- 不是说一个源程序中只能有一个public类?怎么内部类可以用public?
- NSLayoutConstraint
- flash air 解析html,AIR 程序内部显示网页,并可以点击浏览的方法(HTMLLoader、StageWebView)...
- 演示方法:有抱负的分析师
- servlets_jQuery Ajax – Servlets集成:构建完整的应用程序
- TensorFlow的基本介绍及Hello,world
- jdbc驱动程序_JDBC操作数据库的步骤
- nodejs 安装 nrm
- ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
- android改包名
- handler和thread之间如何传输数据_HTTP和TCP之间的关系
- 我的cocos2d-x集成sharesdk之旅(转)
- c语言程序设计5pdf,C语言程序设计5.pdf
- UI 自动化框架对比2
- 树莓派Pico 开机自动运行程序
- 视频接口:DP接口和HDMI接口介绍,看完你就懂了
- Java解惑之长整型
- linux桌面lxde 安装_Ubuntu怎么安装轻量级的LXDE桌面?
- laravel Eloquent whereIn 多个字段