创建固定大小的文件 -- Linux shell 脚本编写实例
来源:互联网 发布:怎么修改linux下ip 编辑:程序博客网 时间:2024/04/28 17:16
昨天验证bug时,需要在原来文件的基础上生成一个固定大小的新文件,具体要求如下:
1. 源文件 src_file, 大小为4840896 byte;
2. 目标文件obj_file(在源文件基础上扩大),大小为5263104 byte;
需要的准备工作:
1. 获得文件大小的组合指令: ls -l src_file | awk '{print $5}',其中 ls -l src_file 用来获得src_file
的详细信息,文件大小在第5列的位置;awk '{print $5}' 以 ls -l src_file的输出作为该指令的输入,
将其第5列内容打印出来,即文件的大小。
2. 扩大源文件的指令: echo /0 >> src_file, 在文件filename 最后添加null字符。
3. 截取文件的指令: dd if=src_file out=obj_file bs=256 count=20559 注释:每次写256byte,
重复20559个cycle, 即 256 * 20559=5263104 byte。
具体的脚本实现:
step1:生成大于等于 5263104 bytes 的目标文件
注释:脚本中需扩大的文件为vmlinux.64.noinitrd,
执行之前先将源文件copy到目录 /root下。
============================================================
#! /bin/sh # 使用的shell为sh
if [ -e /root/vmlinux.64.noinitrd ] # 判断文件vmlinux.64.noinitrd是否存在,存在则为真
then
size=`ls -l /root/vmlinux.64.noinitrd | awk '{print $5}'` # 获得vmlinux.64.noinitrd大小,
# 并用变量size来保存
while [ $size -lt 5263104 ] # 当size小于5263104 时,条件为真
do
echo /0 >> /root/vmlinux.64.noinitrd # 在vmlinux.64.noinitrd末尾写null字符,来扩大
# 文件的大小,实际内容不变
done # 对应于while语句
fi # 对应于if语句
exit 0 # 退出代码,成功则为0
============================================================
step2: 执行脚本
root@localhost:/root> chmod 555 create_file #此处通过改变文件的权限来实现
root@localhost:/root> ./create_file #执行脚本
step3:截取文件大小为5263104 bytes
一般来说step2执行后得到的目标文件vmlinux.64.noinitrd的大小并不恰好就是5263104 byte,这就需要对目标文件进行截取操作,此处使用dd命令实现。
root@localhost:/root> dd if=vmlinux.64.noinitrd of=vmlinux.64.noinitrd.test bs=256 count=20559 #源文件和目标文件均在root目录下;如果当前目录不是root目录,则if 和of需要改为:
if=/root/vmlinux.64.noinitrd of=/root/vmlinux.64.noinitrd.test 。(源文件和目标文件也可属于不同目录)
step4: 查看目标文件的大小是确实为5263104 byte
root@localhost:/root> ls -l vmlinux.64.noinitrd.test
体会:
最初看到要求时,只有思路,每条指令的规范等都很陌生,写过之后就想把这些常用的指令和脚本记录下来,作为以后的参考,来减少组织规范的时间。
Karen
- 创建固定大小的文件 -- Linux shell 脚本编写实例
- 创建固定大小的文件 -- Linux shell 脚本编写实例
- 创建固定大小的文件
- linux下如何创建固定大小的文件
- Linux Shell脚本 - 统计多个文件的总大小
- linux shell脚本的编写
- 编写Linux的shell脚本
- linux生成固定大小的文件
- linux 下 生成固定大小的文件
- dd创建固定大小文件
- Linux创建固定大小目录
- Linux Shell脚本编写
- Linux shell 脚本 编写
- Shell脚本实例(二) 向指定目录下不断产生指定大小的文件
- shell脚本编写比较两个数的大小
- shell脚本编写实例一
- 编写简单的 Linux Shell 脚本
- linux下的shell脚本编写
- 表单里文件上传
- 查看端口被哪个程序占用
- eclipse Jbuilder下配置resin2
- FB 启动参数
- locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
- 创建固定大小的文件 -- Linux shell 脚本编写实例
- 用Moblin v2创建新应用经典教程
- DropDownList自动生成年月日
- 5月5日地图下载。
- web service地址
- SQL With cube
- 糊涂了,项目经理是干什么的?普通员工也要提高自我人生的项目意识!
- 由我作主
- C++使用c写的函数,出现连接错误.