linux dd命令不同场景用法,建议收藏

我记得有一次,在维护服务器时,遇到了一个奇怪的文本文件,里面全是大小写不规则的字母。
我打开文件一看,里面充斥着各种大小写,这让我的程序处理起来非常麻烦。
我灵机一动,想起了dd命令的文本处理功能,于是我在终端里输入了这样一段命令:
dd if=testfile.txt of=testfile_2 conv=ucase
几秒钟后,我检查了生成的testfile_2 文件,发现所有的字母都变成了大写。
这让我松了一口气,因为我终于可以轻松处理这个文件了。

等等,还有个事,我突然想到,如果我要将文件转换成小写呢?我只需将命令中的ucase换成lcase即可:
dd if=testfile.txt of=testfile_2 conv=lcase
这让我意识到,dd命令不仅仅是一个简单的备份工具,它还能在文本处理方面发挥重要作用。
不过,我还是更喜欢用它的磁盘测速功能。
比如,有一次我想测试一下新硬盘的读写速度,我使用了这样的命令:
sudotimeout=6 0 dd if=/dev/zero of=/data/a.dat bs=8 k count=2 0K oflag=direct
命令执行后,我得到了硬盘的读写速度数据。
这让我对硬盘的性能有了更直观的了解。
所以说,dd命令真是多才多艺啊!不过,它的应用场景远不止这些。

linux下dd命令详解

上周,我那个朋友在Linux下用dd命令制作启动盘,参数设置是这样的:if=boot.img of=/dev/fd0 bs=1 4 4 0k。
他说,if指定源文件,默认是标准输入,of指定目的文件,默认是标准输出。
然后,conversion参数进行文件转换,比如ascii转ebcdic,或者swap字节交换。
他试了swap和noerror,说出错时不停止挺方便的。
对了,他还提到sync参数,能保证每个输入块都填满ibs个字节,不够的用空字符补齐。
不过,他没怎么用到--help和--version,说是太基础了。
算了,他后来又跳到说,dd命令真强大,可以做很多事呢。

使用Linux中的dd命令

dd直接操作硬盘,风险高。

复制分区用:dd if=/dev/sda1 of=/dev/sdb1 bs=4 M。

创建镜像:dd if=/dev/zero of=image.img bs=1 M count=1 02 4
恢复数据:dd if=image.img of=/dev/sdc1 bs=4 M。

参数:if=源,of=目标,bs=块大小。

转换:conv=notrunc不删目标文件,conv=noerror忽略错误。

别乱写:of=/dev/sda会擦除整个盘。

块大快但易错:bs=4 M比bs=1 M快,但风险也高。

监控进度:status=progress。

克隆盘:dd if=/dev/sda of=/dev/sdb bs=4 M。

填大文件:dd if=/dev/urandom of=testfile bs=1 G count=1
别在系统盘操作:根分区风险大。

做完用md5 sum验算:md5 sum source destination。

你自己掂量。