在Linux和其他操作系统中,文件名称中可能包含(,),[,],<space>,
等字符。
每当我尝试在我的bash命令中使用任何这些文件时,如cat,ls等,我需要像下面这样逃避它们:
filename abc(10-oct).txt
cat abc(10-oct).txt wont work.
如果我在"("
和")"
字符之前加上"\"
字符
cat abc\(10-oct\).txt
这有效
我正在尝试通过Java程序自动化一些Linux shell命令。我不确定我必须处理的所有字符并将其转义。
如果有人可能指向我可以获得完整字符列表的资源,那将是一个很大的帮助。
非常感谢
答案 0 :(得分:6)
如果要表示,则必须引用以下字符 本身:
| & ; < > ( ) $ ` \ " ' <space> <tab> <newline>
在某些情况下可能需要引用以下内容。 也就是说,取决于条件,这些字符可能是特殊的 在本说明书的其他地方描述:
* ? [ # ~ = %
各种引用机制是转义字符,单引号 和双引号。
它还说:
用单引号('')括起字符可以保留文字 单引号中每个字符的值。单引号 不能出现在单引号内。
和
用双引号(“”)括起字符可保留文字 双引号内所有字符的值,但有例外 字符美元符号,反引号和反斜杠......
答案 1 :(得分:5)
您可以使用单引号'filename'
来逃避在shell模式下转义的所有内容