1

我正在尝试使用 tar 将单个文件拆分为足够小的部分,以适合 Solaris 5.8 上的 1.44MB 软盘。

根据下面的参考资料,我应该能够通过使用 k 选项来指定段的大小和 f 选项来指定输出文件来实现这一点。

我尝试了各种格式的命令:

tar cvf -k 1378 <output file> <input file>
tar cvf <output file> <input file> -k 1378
tar cvf <output file> -k 1378 <input file>

充其量,这会生成一个具有选项之一名称的文件,其大小与原始文件相同。

提供的 tar 实用程序不同于大多数现代 Linux 系统上可用的 GNU tar 实用程序。gtar不可用。我无法在此系统上安装新软件包。

或者,您知道 Solaris 5.8 基本安装中存在的任何其他实用程序吗?

参考:

4

2 回答 2

1

您是否考虑过拆分命令?

它需要一个文件名和一个长度,然后在新文件名中输出具有指定长度和序列号的较小文件

可以使用 cat 命令重新组合输出文件

split -b 1200000 mypackage.tar 

将创建一组名为 xaa、xab、xac 等的文件,每个文件最多 1,200,000 个字节,每个文件应放在 1.44m 软盘上,并为目录留出空间。

将每个 x 文件复制到软盘并在目标计算机上将所有文件复制到一个空目录和该目录类型

cat x* >mypackage.tar

重建 tar 文件

于 2020-07-06T21:25:22.303 回答
0

我选择了使用 dd 分段移动文件的“不干净”方法,例如

dd if=input.file of=output.file.part-1 bs=1378 count=1 skip=0
dd if=input.file of=output.file.part-2 bs=1378 count=1 skip=1
dd if=input.file of=output.file.part-3 bs=1378 count=1 skip=2
dd if=input.file of=output.file.part-n bs=1378 count=1 skip=n-1...

然后在另一端重新组装:

dd if=input.file-part1 of=output.file bs=1378 count=1 seek=0
dd if=input.file-part2 of=output.file bs=1378 count=1 seek=1
dd if=input.file-part3 of=output.file bs=1378 count=1 seek=2
dd if=input.file-partn of=output.file bs=1378 count=1 seek=n-1...

可能有更好的方法,但这似乎已经达到了目的。

于 2020-04-12T12:47:00.550 回答