![如何转义左括号和右括号 [] 以与 cp 命令一起使用?](https://linux22.com/image/225571/%E5%A6%82%E4%BD%95%E8%BD%AC%E4%B9%89%E5%B7%A6%E6%8B%AC%E5%8F%B7%E5%92%8C%E5%8F%B3%E6%8B%AC%E5%8F%B7%20%5B%5D%20%E4%BB%A5%E4%B8%8E%20cp%20%E5%91%BD%E4%BB%A4%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我有一个脚本可以查找一些目录,然后将其内容复制到另一个目录。
现在的问题是,一些找到的目录需要在命名中包含括号,它们看起来像这样:
/directory/with/[brackets]
当 cp 尝试像这样复制它时,会说不存在这样的文件或目录:
cp -r /directory/with/[brackets]/* /some/other/directory
现在我发现需要转义括号才能使其工作,我只需要一个简单的解决方案。
答案1
你基本上有两个选择:
使用引号转义:
cp -r "/directory/with/[brackets]"/* /some/other/directory
或者
cp -r '/directory/with/[brackets]'/* /some/other/directory
使用反斜杠转义:
cp -r /directory/with/\[brackets\]/* /some/other/directory