Linux 解码base64:输入无效

Linux 解码base64:输入无效,linux,shell,base64,Linux,Shell,Base64,尝试在GNU/Linux上解码base64文件时,我得到“base64:无效输入” 我试着指挥,但没用 我的base64版本: $ base64 --version base64 (GNU coreutils) 5.97 Copyright (C) 2006 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU Gene

尝试在GNU/Linux上解码base64文件时,我得到“base64:无效输入”

我试着指挥,但没用

我的base64版本:

$ base64 --version
base64 (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by Simon Josefsson.
$base64--版本
base64(GNU coreutils)5.97
版权所有(C)2006免费软件基金会。
这是自由软件。您可以根据以下条款重新分发其副本:
GNU通用公共许可证。
在法律允许的范围内,不存在任何担保。
西蒙·约瑟夫森写的。

该版本(默认情况下)不会使用分隔符对行进行解码,但默认情况下编码器会这样做。(较新版本没有此问题。)

一个解决方案:

base64-w0foo.zip | base64-d>foo2.zip

备选方案:

base64 foo.zip | base64-di>foo2.zip

-i
选项代表(从
man
页面):

或者更简单

base64-di foo.zip>foo2.zip

您也可以尝试使用

echo -n
抑制新行并用一到三个相等字符将输入长度填充为4的倍数

=

如果您在mac上执行此操作,您的
base64
版本可能没有处理垃圾的灵活性。如果您brew安装了
coreutils
,您将拥有
gbase64
实用程序,并按照Joe所述使用它。

至少在我的系统上,解码是
-D
,而不是
-D
。在您的系统上,<代码> BASE64——帮助< /代码>?考虑升级;当前版本至少为8.20(从2012年起),可能更为新。该版本是CentOS 5.x安装的版本,因此根据环境控制者的不同,他可能没有选择权。是的,这是一个旧版本linux。Red Hat Enterprise Linux Server 5.3版(Tikanga)于2009/1/20FWIW发布,只有替代解决方案对我有效。即使没有换行符,
base64-d
仍然在抱怨。我把-I放进去,没有工作。我把——忽略垃圾,它就会工作:DThanks Shawn,欢迎来到StackOverflow。你的回答很好,很简洁!为了增强它,你可以考虑用几句话来解释<代码> -di/>代码>选项。
echo -n
=