我面临问题,我需要执行 Solaris flar 映像的修补程序,并且所有命令都需要相当长的时间才能执行。为了避免我出现在它面前,我准备了一个几乎完美运行的脚本。所以,基本上我有一个需要更新的现有 flar 存档。我们称之为 common.flar。该脚本解压推荐的补丁,解压缩 common.flar 应用补丁,然后它应该压缩回存档。
我遵循以下命令:
find . |cpio -ocv|compress > ../flash/archive
如果我在脚本之外执行此操作,它可以正常工作,但如果我在脚本内执行此操作,它会处理存档的前 5 个文件并“中止”
../flash/archive: -- 文件未更改
当发生这种情况并且我让脚本完成时,新的 flar 存档的大小与原始文件完全相同,如果我手动执行此操作,新的 flar 会更大。 (在本例中,它安装了 72 个补丁)
在脚本中,我确保进入正确的目录来运行压缩的管道命令。我没有重定向输入,只是将输出重定向到文件,但我仍然无法理解它失败的原因。
我完成的另一个测试:创建一个只有两行的测试脚本: cd dir;寻找 。 |cpio -ocv|compress > ../flash/archive 这工作正常。