我想知道是否有办法从 bash 输出创建“虚拟文件”。
示例:假设我想将 的输出mysqldump作为附件通过电子邮件发送到外部电子邮件地址。我可以使用 Mutt 来做到这一点。mutt我需要使用的选项是-a <name of the file I want to attach>. 我知道我可以使用一个临时文件:
mysqldump mysqldumpoptions > /tmp/tempfile && mutt -a /tmp/tempfile admin@example.org
Run Code Online (Sandbox Code Playgroud)
但我宁愿将mysqldump输出直接重定向到 Mutt。Mutt 的-a选项只接受一个文件而不是一个流,但也许有一种方法可以将某种虚拟文件描述符或类似的东西传递给它。就像是:
mutt -a $(mysqldump mysqldumpoptions) admin@example.org
Run Code Online (Sandbox Code Playgroud)
是否可以?如果不是,为什么?
这可能是一个愚蠢的例子,肯定有更简单的方法来做到这一点,但我希望它能解释我关于从另一个命令的输出创建虚拟文件的问题。
我在 Windows 中有一个私钥,由puttygen.exe. 我用默认选项保存它,工具自动给它一个.ppk扩展名,它看起来像这样:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20130627
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABJQAAAIBnvvAhyMs4rdlQd4OdajDw4jIPi6vIjrWjt4l4
5C3wHOSxyQQdtSA8XT3K0rSBnNtZRJTb5mfix67qQe3pHCTMSNsYIaBi8xQJHZRa
RxdY+1VtGnSlEma8KO2We9eDNCGiwrRTUzqvTiGCnzU0pF1MXxu3ObISJcpqv+sQ
1GB0cw==
Private-Lines: 8
AAAA..........
Private-MAC: XXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
现在我需要更改密码,根据文档,这似乎很简单:
puttygen.exe -P key.ppk
Run Code Online (Sandbox Code Playgroud)
但这会弹出一个带有此错误的窗口:
PuTTYgen Error: Couldn't load private key (unable to open file)
Run Code Online (Sandbox Code Playgroud)
我还尝试使用ssh-keygenGit Bash 附带的密码来更改密码:
ssh-keygen.exe -p -f key.ppk
Run Code Online (Sandbox Code Playgroud)
它要求我输入旧密码,但随后它给了我错误Bad passphrase。这不是真的,因为我可以在 中添加密钥pageant.exe,而且我没有输入错误密码...
我还可以尝试更改或删除密码短语吗?