linux - 以与 Bash 相同的方式转义文件名

标签 linux bash escaping

当我在 bash 中使用“tab”键时(当您开始输入文件名并希望它完成时),bash 正确地转义了文件名,如果我完全使用那个“转义”文件名,它就可以工作。

例如:

An-Beat - Mentally Insine (Original Mix).mp3 => 在 bash 使用“TAB”转义后 An-Beat\-\Mentally\Insine\\(Original\Mix\).mp3

我正在为 bash 寻找一个函数,它将像“制表符”转义文件名一样转义文件名。

最佳答案

使用printf (1):

x='a real \good %* load of c$rap'
x=$(printf '%q' "$x")
echo $x

会回来

a\ real\ \\good\ %\*\ load\ of\ c\$rap

关于linux - 以与 Bash 相同的方式转义文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608112/

相关文章:

linux - 如何识别终端中运行的是哪个 REPL?

mysql - 如何在 Linux 中运行/执行 Visual FoxPro(sistem.exe 文件)?

bash - 提取没有目录信息的 tar 文件

Java:printf语句中的文字百分号

php - 如何将 XML 字符串回显到 HTML 页面以进行调试?

escaping - 如何在 Inno Setup 中转义 "{"和 "}"

linux - 替换换行符

php - 在我的测试/bootstrap/setup/etc 中使用 phpunit 命令行参数

sql - 无法在 bash 脚本中使用 postgresql 函数

linux - 无法使用nutch解析flv和epub文件内容