![如何创建带有引号的目录名称,例如“晚餐吃什么?”](https://linux22.com/image/851499/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%9C%89%E5%BC%95%E5%8F%B7%E7%9A%84%E7%9B%AE%E5%BD%95%E5%90%8D%E7%A7%B0%EF%BC%8C%E4%BE%8B%E5%A6%82%E2%80%9C%E6%99%9A%E9%A4%90%E5%90%83%E4%BB%80%E4%B9%88%EF%BC%9F%E2%80%9D.png)
我在终端中创建这个目录时遇到了困难。我试过了
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\?