我有一些数据保存在名称中包含非 ascii 字符的目录中,如何访问其中的数据?
目录显示为:
w0p6_t[[0.53.5]?[1.71.2]]
但是在特殊字符\
之前使用它们转义是行不通的,也不会像这里建议的那样用引号将目录名称括起来。
我相信这个“?” 是一个换行符(ascii \012
)作为ls -lb
返回:
w0p7_t[[0.53.5]\n[1.71.2]]
我可以使用tree
命令查看目录的内容,该命令将目录显示为:
w0p6_t[[0.53.5]\012[1.71.2]]
连同它的所有内容。
我也试过:
cd "w0p7_t[[0.53.5]\n[1.71.2]]"
cd "w0p7_t[[0.53.5]\012[1.71.2]]"
和
cd w1p0_t\[\[0.53.5]\\012\[1.71.2\]\]
cd w1p0_t\[\[0.53.5]\\n\[1.71.2\]\]
没有成功。
此外,尝试自动完成命令 usingTab不会提示对该目录的建议。
这里有几种方法(可能还有更多)
未引用的将
?
匹配任何单个字符 - 包括换行符。所以例如或者
您可以使用 bash
$'string'
ANSI 转义来扩展\n
序列