在Linux中大小写字母是严格区分开的例如myfilEmyfilemyFILE是三个不同的文件(口令也是要严格区分大小写的同样UNIX和C开发语言也都要严格区分大小写字母)
文件名长度最大可以为个字符它通常是由字母数字(点号)_(下划线)和(减号)组成的另外还有一些字母是合法的但是我们并不推荐使用它们例如*(星号)?(问号) (空格)$(美元符号)&和任何括号这些字母对于Linux shell有特定的含义
文件名中一定不能含有/ 因为/ 在Linux的目录树中表示根目录或是路径中的分隔符(如同DOS中的\)
在对一个含有特殊字符的文件操作时应当用一对单引号将其括起来这样shell就不会对它们进行处理了例如要删去一个名为my file*的文件(文件名中有空格和星号)应当写为
$ rm my file*
这里要注意的是我们使用单引号而非双引号进行引用对某些特殊字符即使用双引号进行引用shell还是会对其进行解释因此双引号的功能比单引号要弱一些
下面是对一些特殊字符的说明
星号(*)匹配零个或多个字符
?匹配任何一个字符
[abc]匹配任何一个在枚举集合中的字符在该例中该集合是abc或
[az]匹配任何一个小写字符
[AF]匹配任何一个从A到F的大写字符
[]匹配任何一个单个数字
[az AZ ]匹配任何字符(小写或大小)或任何数字
例如下面的命令将列出当前目录下的所有文件的文件名(除了以点号开头的文件)
$ ls *
以点号开头的文件类似于DOS中的隐藏文件用ls a或ls *命令才可以显示这些文件这些以点号开头的文件常在用户主目录中用做用户的配置文件
下面的命令显示了含有点号的文件
$ ls **
下面的命令显示了含有两个点号的文件
$ ls ***
Linux不具备文件扩展名的概念或者任何其它DOS文件名特性(如Micro~doc)
例如下面的命令将显示当前目录下所有以ab或任何大写字母开头的文件的文件名
$ ls [abAZ]*