如何创建带有引号的目录名称,例如“晚餐吃什么?”

如何创建带有引号的目录名称,例如“晚餐吃什么?”

我在终端中创建这个目录时遇到了困难。我试过了

mkdir '"What's for dinner?"'

但我认为这行不通,因为 中有撇号What's。所以我尝试转义该撇号:

mkdir '"What\'s for dinner?"'

但它仍然不起作用。有什么想法吗?

编辑:我想保留目录名称中的双引号。

答案1

如果您想创建带有引号的文件夹,则应使用双引号将其"转义\

mkdir "\"\""

将创建文件夹""

mkdir "\"\"'"

将创建文件夹""'

mkdir "'"

将创建文件夹'

mkdir "\"What's for dinner?\""

将创造你想要的

答案2

在单引号内,所有字符都按字面意思理解。但是,这也意味着您不能将单引号放在单引号内。解决方案是使用单引号括住字符串,并在它们之间使用转义的单引号:

mkdir '"What'\''s for dinner?"'

上面的'"What'是一个单引号字符串。其后跟的是\'转义的单引号。而 后面跟的是单引号字符串's for dinner?"'

上述方法效果很好,因为规则很简单。

另一种方法是$'...'构造。使用:

mkdir $'"What\'s for dinner?"'

$'...'表格确实支持许多转义字符,包括\'单引号。

答案3

像这样从代码中删除单引号,

mkdir "What's for dinner?"

这将创建一个名为What's for dinner?

更新:

mkdir "'What's for dinner?'"

这将创建一个名为'What's for dinner?'

更新 1:

mkdir "\"What's for dinner?"\"

这将创建一个名为"What's for dinner?"

答案4

您可以使用如下方式转义每个符号字符\

$ mkdir What\'s\ for\ dinner\?

相关内容