[20140702]linux使用dd的一些细节.txt
linux下使用dd要注意的一个重要细节是输入,输出不要写错或者写反,否者后果很严重.
另外假设要修改某个文件的中间部分,有一个细节要特别注意,否者会导致文件破坏.
举一个简单的例子来说明:
# cat a1.txt
111111111
222222222
333333333
--建立一个文件每行10个字符(看到9个字符+加上\n正好10个字符.)
# dd if=a1.txt of=a2.txt bs=10 skip=1 count=1
1+0 records in
1+0 records out
# cat a2.txt
222222222
--这样正好取出中间部分.假设修改最后一个字符为b.
# cat a2.txt
22222222b
--现在替换回去.
# dd if=a2.txt of=a1.txt bs=10 count=1 seek=1
1+0 records in
1+0 records out
# cat a1.txt
111111111
22222222b
# ls -l a1.txt
-rw-r--r-- 1 root root 20 2014-07-02 16:19:46 a1.txt
--可以发现结尾部分丢失,文件大小改变.正确的做法是:
# dd if=a2.txt of=a1.txt bs=10 count=1 seek=1 conv=notrunc
1+0 records in
1+0 records out
--后面的参数conv=notrunc很重要! notrunc=>do not truncate the output file
# cat a1.txt
111111111
22222222b
333333333
--可以发现这样修改后,结果才正确,仅以此文做为自己犯的一个严重错误的纪念.链接:
http://blog.itpub.net/267265/viewspace-762523/
--再次补充一个,测试操作一定要小心!!!!!!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-1204908/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/267265/viewspace-1204908/