我以前使用base64时不需要“-i”

我以前使用base64时不需要“-i”

我正在使用 macOS 13.6.1 (22G313) 的机器。

我曾经能够base64从终端使用以下格式创建 .p12 文件(可能是 1 - 3 年前):

base64 mastercard-track.p12 > mastercard-track_base64.txt

base64现在,当我尝试像这样使用该程序时,我收到此错误:

base64: invalid argument mastercard-track.p12
Usage:  base64 [-hDd] [-b num] [-i in_file] [-o out_file]
  -h, --help     display this message
  -Dd, --decode   decodes input
  -b, --break    break encoded string into num character lines
  -i, --input    input file (default: "-" for stdin)
  -o, --output   output file (default: "-" for stdout)

是个base64我以前用的程序现在不一样了吗

答案1

您曾经使用base64从 Homebrew 安装的(它安装约翰·沃克的base64实施)。您不再安装该软件,因此您可以使用 Apple 的/usr/bin/base64. macOS 附带的实用程序base64具有不同的命令行语义(不同的选项等,它不是标准化的实用程序),而base64Homebrew(可能还有 macOS 上的其他包管理器)提供的命令行语义与您在 ports/packages 中找到的相同在 OpenBSD、FreeBSD 和 NetBSD 上,而 Linux 通常使用 coreutils 实现。

您可以将输入重定向与现有的输出重定向一起使用,以使您的 shell 代码更加可移植:

base64 <mastercard-track.p12 >mastercard-track_base64.txt

这样做的好处是可以与 Applebase64base64从 Homebrew 安装的实用程序一起使用。它还与 coreutils 变体兼容base64

答案2

看来base64程序已经改变或者我以某种方式使用了不同的程序(很可能我使用了 Homebrewbase64)。

使用以下unix命令对我来说成功了:

base64 -b 64 -i mastercard-track.p12 -o mastercard-track_base64.txt

相关内容