Heirloom-mailx 并保存到带空格的 IMAP 文件夹

Heirloom-mailx 并保存到带空格的 IMAP 文件夹

如果我尝试使用 heirloom-mailx 中的命令将邮件保存到 IMAP 文件夹save 1 +FOLDER/"Folder withSpaces",mailx 会输出No applicable messages from {Folder/"Folder, withSpaces"}.对于没有空格的文件夹,它会根据需要成功将消息附加到文件夹中。谁能告诉我这是为什么,以便我可以修复它?我用谷歌搜索过,但没有成功找到答案。谢谢!

答案1

引用自mailx 联机帮助页:

  • 参数可以括在成对的双引号""或单引号之间'';引号内的任何空格、shell 单词扩展或反斜杠字符均按字面意思视为参数的一部分。双引号将按字面意思处理在单引号内,反之亦然。引号的这些特殊属性仅当它们在参数的开头和结尾配对时才会出现。[添加了强调]

因此,参数中间的引号不起作用(与大多数 shell 不同)。但你也不能"+FOLDER/Folder withSpaces"这么说,因为联机帮助页还说:

  • 如果文件名以未引用的加号,并且定义了文件夹变量,加号将替换为文件夹变量的值,后跟斜杠。 [添加了强调]

因此,如果您使用引号,则+不再特殊。你必须退回到反斜杠转义:

save 1 +FOLDER/Folder\ withSpaces

应该可以工作。 (其实我不是肯定"+FOLDER/Folder withSpaces"行不通;您可以尝试一下,看看我是否误解了联机帮助页。)

您可能会考虑重命名该文件夹,例如重命名为Folder_withUnderscoreFolder-withHyphen

答案2

更多地查看 mailx 联机帮助页,我注意到该shortcut命令,它完全完成了我想要的任务。我在 Gmail 中创建了“所有邮件”文件夹的快捷方式,例如shortcut all "+[Gmail]/All Mail",然后save 1 all根据需要将邮件附加到“所有邮件”文件夹。

相关内容