拆分失败没有错误

时间:2017-01-18 21:51:55

标签: split gzip gunzip

如何使用Linux命令gunzip -c original.zip | split -l 10 - 'smaller-part-' --additional-suffix='.txt' --filter='gzip >> $FILE.zip' 将zip文件拆分为多个较小的zip文件?

我有一个大型zip存档,其中包含一个包含数百万行我需要处理的文件。幸运的是,处理可以并行完成,因此我想将zip拆分为N个部分,以便为在多台机器上运行的处理器提供服务。

我目前正在使用此命令将单个大型zip存档拆分为10个较小的zip存档:

split: with FILE=smaller-part-aa.txt, exit 1 from command: gzip >> $FILE.zip

在运行Ubuntu 16的本地主机上运行完美。但是,在运行Ubuntu 16的另一台服务器上,此命令神秘地失败并显示错误:

--verbose

为什么它会以错误代码退出?即使我指定buildbot,也不提供进一步的解释。

编辑:问题似乎与运行命令的用户有关。在抛出错误的服务器上,我将其作为sudo -u buildbot bash启动的shell中的自定义{{1}}用户运行。但是,所有文件和目录都归该用户所有。当我以默认的ubuntu用户身份运行该命令时,它会正确运行。为什么在以自定义用户身份运行时会出现gunzip / split / gzip错误?

1 个答案:

答案 0 :(得分:0)

问题是我的用户为其/bin/false环境变量设置了SHELL,导致分割的--filter参数失败,因为它需要一个有效的shell来执行过滤命令。使用vipw将其更改为/bin/bash修复它。