gpt4 book ai didi

linux - 使用Linux dd复制并读取指定位置的文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:21 38 4
gpt4 key购买 nike

我有目标驱动器,我知道它被分区为 512b 扇区。我想将带有 dd 的 150b 文件传输到给定目标的该驱动器(假设起始扇区 2099200),然后从同一位置扇区读取与文件大小 (150b) 完全相同的字节数。我尝试过这样的事情:

sudo dd if=my.txt of=/dev/sdb obs=512eek=2099199

sudo dd if=/dev/sdb of=my.txt obs=150 count=1 ibs=512skip=2099199

它几乎可以工作,但我无法让它仅传输 150b:

1+0 条记录3+1记录输出复制了 512 字节 (512 B)

出了什么问题以及如何做我需要的事情?也许我弄错了,其他解决方案会更好,但我需要独立于文件系统。

最佳答案

man 页面:

count=BLOCKS
copy only BLOCKS input blocks

当您从驱动器复制文件时,您将复制 512 字节,因为您使用 ibs 选项指定要在 512 字节 block 中复制的输入,并使用 count 选项复制一整个 block 。相反,您可以只指定要复制的 block 数作为您的 ibs 值:

sudo dd if=/dev/sdb of=my.txt ibs=150 count=1 skip=2099199

编辑:正如评论中所指出的,此方法需要重新计算跳过值。另一种选择是:

sudo dd if=/dev/sdb ibs=512 count=1 skip=2099199 | dd count=150 of=my.txt

关于linux - 使用Linux dd复制并读取指定位置的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101553/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com