Dash - 如何转义奇怪的路径字符

Dash - 如何转义奇怪的路径字符

如果创建了以下奇怪的目录:

a"␤

b"

在 bash 或 zsh 中,可以执行以下操作: cd a$'\n'b 或 cd 'a'$'\n''b'

破折号相当于什么?

答案1

唯一的等价物基本上就是您所写的:

cd a"
"b

(或其他一些报价排列)。字符串文字可以包含空格,包括换行符,并将其按字面意思保留为所在单词的一部分。您不能使用反斜杠作为换行符,因为这会调用换行符连接并且只是完全删除换行符,因此您可以选择单引号或双引号。

在这种情况下你也可以使用命令替换与例如printf处理相同的\n转义序列:

cd "a$(printf '\nb')"

决赛b是必须的printf因为尾随换行符是通过命令替换删除的,所以如果文件名实际上以换行符结尾,则这将不起作用。您还可以将其用于其他转义,例如\aBEL 字节。

$'...'对于ANSI-C 引用,没有直接的 POSIX 或破折号等效项(然而)。

相关内容