我正试图使用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基本安装中还有其他实用程序吗?
参考文献:
- https://docs.oracle.com/cd/E19109-01/tsolaris8/817-0879/6mgl9vnhn/index.html
- http://ibgwww.colorado.edu/~lessem/psyc5112/usail/man/solaris/tar.1.html
您是否考虑过split命令?
它获取一个文件名和一个长度,然后输出指定长度的较小文件和新文件名中的序列号
可以使用cat命令重新组装输出文件
split -b 1200000 mypackage.tar
将创建一组名为xaa、xab、xac等的文件,每个文件最多120万字节,每个文件应该放在1.44米的软盘上,并为目录留出空间。
将每个x文件复制到软盘上,然后在目标机器上将所有文件复制到一个空目录中,并在该目录中键入
cat x* >mypackage.tar
重建tar文件
我选择了使用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...
可能还有更好的方法,但这似乎达到了目的。