在Linux中
大小寫字母是嚴格區分開的
例如
my
filE
my
file
my
FILE是三個不同的文件(口令也是要嚴格區分大小寫的
同樣
UNIX和C開發語言也都要嚴格區分大小寫字母)
文件名長度最大可以為
個字符
它通常是由字母
數字
(點號)
_
(下劃線)和
(減號)組成的
另外還有一些字母是合法的
但是
我們並不推薦使用它們
例如
*
(星號)
?
(問號)
(空格)
$
(美元符號)
&
和任何括號
這些字母對於Linux shell有特定的含義
文件名中一定不能含有
/
因為
/
在Linux的目錄樹中表示根目錄或是路徑中的分隔符(如同DOS中的
\
)
在對一個含有特殊字符的文件操作時
應當用一對單引號將其括起來
這樣shell就不會對它們進行處理了
例如
要刪去一個名為my file*的文件(文件名中有空格和星號)
應當寫為
$ rm
my file*
這裡要注意的是我們使用單引號而非雙引號進行引用
對某些特殊字符即使用雙引號進行引用
shell還是會對其進行解釋
因此雙引號的功能比單引號要弱一些
下面是對一些特殊字符的說明
星號(*)
匹配零個或多個字符
?
匹配任何一個字符
[abc
]
匹配任何一個在枚舉集合中的字符
在該例中
該集合是a
b
c或
[a
z]
匹配任何一個小寫字符
[A
F]
匹配任何一個從A到F的大寫字符
[
]
匹配任何一個單個數字
[a
z A
Z
]
匹配任何字符(小寫或大小)或任何數字
例如
下面的命令將列出當前目錄下的所有文件的文件名(除了以點號開頭的文件)
$ ls *
以點號開頭的文件類似於DOS中的隱藏文件
用ls
a或ls
*命令才可以顯示這些文件
這些以點號開頭的文件常在用戶主目錄中
用做用戶的配置文件
下面的命令顯示了含有點號的文件
$ ls *
*
下面的命令顯示了含有兩個點號的文件
$ ls *
*
*
Linux不具備文件擴展名的概念或者任何其它DOS文件名特性(如
Micro~
doc)
例如
下面的命令將顯示當前目錄下所有以
a
b
或任何大寫字母開頭的文件的文件名
$ ls [abA
Z]*
From:http://tw.wingwit.com/Article/program/Oracle/201311/17188.html