![Linux 和 DD - 无限时间提取一个文件](https://linux22.com/image/1456473/Linux%20%E5%92%8C%20DD%20-%20%E6%97%A0%E9%99%90%E6%97%B6%E9%97%B4%E6%8F%90%E5%8F%96%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我dd
在 Linux 上使用 Linux 从磁带中提取数据(是的,它真的很老派!),但我遇到了一个问题。有时,当我提取文件(从一盘磁带上的不同文件中提取)时,经过很长时间并且文件提取量很大之后,提取仍未完成。所以这是一个问题,因为我知道文件的大小约为 10MB,而不是 1GB 或更多。我知道文件中的块数(例如 4092),所以我想在这个块数处停止提取。你知道是否可以在例如 4092 个块处停止提取吗?
我在网上找了很久,没有找到关于这个的命令。
我使用此命令从磁带中提取文件:
sudo mt -f /dev/nst0 of=file.out bs=512 conv=noerror,sync
答案1
您可以使用 dd 的“count”选项来指定要复制的块数;结合块大小选项“bs”,这允许您控制要提取的数据量。请注意,较小的块大小也可能导致较长的传输时间,具体取决于设备的类型。
首先根据需要定位磁带,例如定位到块 2048:
mt -f /dev/nst0 setblk 2048
然后使用 dd 命令从相关设备读取(注意:可能有多个类似的磁带设备,如果随后要读取其他文件,请检查驱动程序详细信息以找到无倒带设备):
sudo dd if=/dev/nst0 of=file.out bs=1024 count=37 conv=noerror,sync
这将从块 2048 的起始位置读取 37 千字节,每个块(即缓冲区)有 1024 字节。