首页 > 系统 > Linux > 正文

一天一个shell命令 文本操作系列-linux dd使用教程

2019-10-26 18:48:18
字体:
来源:转载
供稿:网友

今天第一天写,先说下写shell脚本的基本知识

1. shell脚本以.sh 为扩展名,通常运行 ./${filename}.sh 或者 sh ${filename}.sh
2. shell 脚本开头以 #!/bin/bash #!读作 “shebang”
3. 开启调试  #!/bin/bash –xv
4. /dev/null 任何东西丢进去都会消失,linux黑洞。 /dev/zero 用于初始化,会产生0

今天先介绍 dd 命令

由来(全称):本来应根据其功能描述“Convert an copy”命名为“cc”,但“cc”已经被用以代表“CComplier”,所以命名为“dd”

开篇例子:

1.  dd if=infile.log  of=outfile.log bs=1M count=1

  拷贝 infile.log内容 到 outfile.log. 一次读写比特数为1M , 每次读写一个块(1M,由bs决定)

2.  echo -n "hello world" | dd cbs=1 conv=unblock 2>/dev/null

  主要演示cbs,每次转换一个字节, conv=unblock 是将cbs 大小的块中尾部的空格替换为一个换行符  2> 是错误信息输出流  /dev/null 开头介绍了

解读help:

(不愿意看这么一大段,尝试先跳过,看解读)

用法:dd [操作数] ...
或:dd 选项
 复制文件,依照操作数转换并格式化。

  bs=比特数    一次读写的比特数
  cbs=比特数    一次转换的比特数
  conv=CONVS    依照每个逗号分割的标志列表转换文件
  count=块数    只将指定个块数复制到块
  ibs=比特数    一次读取的比特数(默认:512)
   if=文件    从指定文件中读取
  iflag=符号    按照以逗号分隔的符号列表指定的方式读取
  obs=比特数    一次写入指定比特数(默认:512)
   of=文件    写入到指定文件
  oflag=符号    按照以逗号分隔的符号列表指定的方式写入
  seek=块数    在输出开始处跳过指定的块数
  skip=块数    在输入开始处跳过指定的块数
  status=noxfer    禁止传输统计

块和字节数后可能带有以下的一个或多个后缀:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
 GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.

每个 CONV 符号可能为:

  ascii        由EBCDIC 码转换至ASCII 码
  ebcdic    由ASCII 码转换至EBCDIC 码
  ibm        由ASCII 码转换至替换的EBCDIC 码
  block        将结束字符块里的换行替换成等长的空格
  unblock    将cbs 大小的块中尾部的空格替换为一个换行符

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表