2013-10-04 30 views
4

在Linux和其他操作系統中,文件名中可以​​包含(,),[,],<space>,等字符。 每當我嘗試使用這些文件,像貓,LS,等我的bash命令我必須逃脫他們象下面這樣:需要在linux shell命令中轉義的字符列表

filename abc(10-oct).txt 
cat abc(10-oct).txt wont work. 

如果我先"("")"字符與字符"\"

cat abc\(10-oct\).txt 

這工作

我試圖通過Java發展項目中自動執行某些Linux的shell命令我不知道什麼的所有字符,我必須照顧和逃避它們。

如果有人可能指向一個資源,我可以得到一個完整的人物列表,這將是一個很大的幫助。

非常感謝

需要
+0

可能的重複http://stackoverflow.com/questions/15783701/which-characters-need-to-be-escaped-in-bash-how-do-we-know-it/15784162#15784162 – cdarke

回答

5

您可以使用單引號'filename'將逃脫一切都在shell模式

+1

是的,有點像'cat'abc(10-oct).txt''會工作得很好。 –

+0

好..我沒有意識到..我會試試這個..並絕對接受爲答案 – Arunkumar

+2

除了一個討厭的單引號',這是不能逃脫的。 – cdarke

6

Shell Command Language報價進行轉義:

,如果他們是以下字符必須被引用代表 本身:

| & ; < > () $ ` \ " ' <space> <tab> <newline>

以下可能需要在某些情況下引用。 也就是說,這些字符可根據在本說明書中其他地方所描述的條件 是特殊:

* ? [ # ~ = %

各種引用機制是轉義字符,單引號 和雙引號。

它還說:

在單引號(」「)保留了單引號內的每個字符的字面 值圍合的字符。單引號內不能出現單引號 。

和:

在雙引號(」「)保留了雙引號內的所有字符的字面 值,除人物的 美元符號,反引號圍護字符和反斜槓...