我有一个脚本可以写入几个文件,但我需要它们具有特定大小。所以我想知道是否有办法使用标准命令行工具(例如,通过从 复制/dev/zero
)将特定数量的空字节附加到文件?
答案1
truncate
比 快得多dd
。要将文件增大 10 个字节,请使用:
truncate -s +10 file.txt
答案2
你也可以尝试一下
dd if=/dev/zero bs=1 count=NUMBER >> yourfile
这将从 /dev/zero 读取并将 NUMBER 字节附加到您的文件。
答案3
下面是仅使用 dd 将 10MB 附加到文件的示例。
[root@rhel ~]# cp /etc/motd ./test
[root@rhel ~]# hexdump -C test |tail -5
000003e0 0a 0a 3d 3d 3d 3d 3e 20 54 65 78 74 20 6f 66 20 |..====> Text of |
000003f0 74 68 69 73 20 6d 65 73 73 61 67 65 20 69 73 20 |this message is |
00000400 69 6e 20 2f 65 74 63 2f 6d 6f 74 64 20 3c 3d 3d |in /etc/motd <==|
00000410 3d 3d 0a |==.|
00000413
[root@rhel ~]# dd if=/dev/zero of=/root/test ibs=1M count=10 obs=1M oflag=append conv=notrunc
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0208541 s, 503 MB/s
[root@rhel ~]# hexdump -C test |tail -5
00000410 3d 3d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 |==..............|
00000420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00a00410 00 00 00 |...|
00a00413
答案4
cat "your file" /dev/zero | head -c "total number of bytes"
或者
head -c "number of bytes to add" /dev/zero >> "your_file"
并更容易地计算尺寸:
head -c $(( "total number of bytes" - $(stat -c "%s" "your_file") )) /dev/zero >> "your_file"