首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代“dd”,它不截断文件

替代“dd”,它不截断文件
EN

Unix & Linux用户
提问于 2017-09-07 12:20:46
回答 1查看 2.4K关注 0票数 5

有没有人知道“dd”的替代方法,它不会在不使用:conv=notrunc的情况下截断文件。由于空间有限,不支持通过busybox/toybox添加conv=notrunc

例如,我想要相当于

代码语言:javascript
复制
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc

但是,在dd不支持conv=notrunc的情况下,这是可行的。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-09-07 12:25:37

使用标准的<> sh重定向操作符,它以read+write模式打开文件而不截断。

代码语言:javascript
复制
cat < file.in 1<> file.out

若要在file.in的开头复制file.out内容,请执行以下操作。

如果您需要在输入或输出文件中查找,并且假设您的dd仍然支持这些指令:

代码语言:javascript
复制
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out

如果您根本没有dd,可以尝试head -c,假设您的版本能够在退出时将指针留在正确的位置( IIRC早期版本的busybox没有这样做)。

例如,上述内容相当于:

代码语言:javascript
复制
{
  head -c 8 > /dev/null        # seek input fd to offset 8
  head -c 12 <&1 > /dev/null   # seek output fd to offset 12
  head -c 12                   # copy 12 bytes
} < file.in 1<> file.out
票数 13
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/390930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档