linux中dd 的用法,Linux dd命令为初学者解释(8个例子)

本文介绍了Linux中的dd命令,这是一个用于复制和转换文件的工具。通过示例详细讲解了如何使用dd命令改变文本大小写、读写文件、跳过输入文本、交换字节、控制输出条件、更新输出文件方式以及控制输出文件创建等操作。dd命令的强大功能使其在系统管理和文件操作中非常有用。
摘要由CSDN通过智能技术生成

有时,在Linux中的命令行工作时,您可能需要执行复制操作,方式是在数据/文本写入目的地之前进行格式化。 一个简单的例子可能是从文件中复制文本,并将大小写更改的版本(从上到下,或从上到下)写入目标文件。

如果您一直在寻找方法,您将很高兴知道存在一个命令行实用程序 - 配置dd - 这是为此目的而建立的。 在本教程中,我们将讨论如何使用一些易于理解的示例进行工作。 但在我们这样做之前,值得一提的是,这里提到的所有例子都已经在Ubuntu 16.04LTS上进行了测试。

Linux dd命令

简而言之, dd命令允许您复制和转换文件。 该工具提供了一些操作数,您可以使用它们来指定所需的格式。 以下是其手册页中描述的命令的通用语法:

dd [OPERAND]...

dd OPTION

以下Q&A类型的示例应该让您对dd命令的工作原理有一个好的了解。

Q1。 如何使用dd命令更改输入文本的大小写?

假设您有一些小写的文本行,并且要求是将它们快速转换为大写。 您可以使用conv命令行选项(以ucase为其值)。

这里有一个例子:

65c7075bf264f4edc6c405bfc3d2bcea.png

上面的屏幕截图显示了命令以及输入文本。 键组合Ctrl + d用于告诉dd我们完成了输入,并且一旦完成,命令就产生以下输出:

c9eb192da7a277260a11117baf457554.png

所以你可以看到输入文本是从小写到大写的。 最后三行只是一些与操作有关的统计数据。

注意 :同样,您可以使用值lcase将大写文本转换为小写。

Q2。 如何读取和写入文件?

在上面的第一个例子中,我们通过stdin(标准输入)输入了文本。 但是,您可以随时使用输入和输出文件。 要指定输入和输出文件的名称,请使用if和命令行选项。

例如,如果要转换file1中的文本大小写,然后将其写入file2,则可以通过以下方式执行此操作:

dd if=file1 of=file2 conv=ucase

19e9c519a5a8975a1c83738b76873912.png

Q3。 阅读输入时如何跳过文字?

如果需要,您可以要求dd在读取输入文本时跳过一些初始字节。 这可以使用需要数值的跳过选项来完成。 如果说这个值是'N',那么dd将在输入开始时跳过N个ibs大小的块。 这使我们进入“ibs”,这也是另一个命令行dd选项,其值指定工具每次读取的字节数(默认值为512)。

所以假设你想跳过前4个字节的输入文件,那么你应该首先将ibs设置为4,然后使用1作为skip的值。 这将确保在读取输入文件时该工具将跳过4个字节的1个块。

11b64bcb41489f63e0bdabd608d77e5f.png

所以你可以看到文本嘿,在读取file1时被跳过 - 这就是为什么它没有出现在file2中。

Q4。 如何在输出中交换每对输入字节?

如果有这样的要求,您也可以使用dd来交换每对输入字节。 这可以通过使用swab作为conv命令行选项的值来实现。 以下屏幕截图将使事情更加清晰:

e3f989e9c6eedabc2f15302dd72fe3e1.png

Q5。 如何使dd仅在输出文件不存在时才起作用?

如果要求是输出文件已经存在,dd命令不应该执行任何操作,那么可以使用conv选项的excl值强制执行此条件。

以下屏幕截图显示了用例的操作:

2cc7de890883cb603a6a59ada4d5a007.png

Q6。 如何确保输出文件在附加模式下更新?

默认情况下,dd只会覆盖输出文件(如果存在)。 但是,如果您希望附加文本,请使用值为applag的 FLAG和notrunc作为转换选项。

例如:

dd if=file1 of=file3 oflag=append conv=notrunc

以上是上述命令:

188d81f108cab7c1d7316ba23d9a8354.png

Q7。 如何使dd不创建输出文件?

如果需要,还可以强制dd命令在命令中给出的文件不存在的情况下不创建输出文件。 这可以通过使用conv命令行选项的nocreat值来完成。

例如:

a05c374d0022f7440471a90b22e7878f.png

Q8。 如何控制stderr上打印的信息水平?

如果需要,还可以限制命令在stderr上打印的信息量。 这可以使用状态命令行选项完成。 例如,如果要禁止除错误消息之外的所有内容,可以将值none传递给此命令行选项:

dd if=file1 of=file3 status=none

其他可用的值是noxfer和进度 。 这是手册页面关于状态选项的说明:status=LEVEL

The  LEVEL  of information to print to stderr; 'none' suppresses

everything but error messages,  'noxfer'  suppresses  the  final

transfer  statistics, 'progress' shows periodic transfer statis?

tics

结论

本教程中讨论的例子只是在探索dd命令可以做的事情上划伤表面。 只是给您一个想法,您可以使用该工具创建虚拟文件系统以及备份硬盘驱动器或系统分区。 有关dd的更多信息,请访问其手册页 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值