如果我尝试使用 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_withUnderscore
或Folder-withHyphen
。
答案2
更多地查看 mailx 联机帮助页,我注意到该shortcut
命令,它完全完成了我想要的任务。我在 Gmail 中创建了“所有邮件”文件夹的快捷方式,例如shortcut all "+[Gmail]/All Mail"
,然后save 1 all
根据需要将邮件附加到“所有邮件”文件夹。