日期:2014-05-16  浏览次数:20773 次

linux文件名规则
在Linux中,大小写字母是严格区分开的。例如,my-filE、my-file、my-FILE是三个不同的文件(口令也是要严格区分大小写的。同样,UNIX和C研发语言也都要严格区分大小写字母)。
  


  文件名长度最大能为256个字符,他通常是由字母、数字、“.”(点号)、“_”(下划线)和“-”(减号)组成的。
    例如:/abc/dd.d
    (\/[a-zA-Z0-9\_\-][a-zA-Z0-9\.\_\-]*)*





另外更有一些字母是合法的,不过,我们并不推荐使用他们。例如,“*”(星号)、“?”(问号)、“ ”(空格)、“$”(美元符号)、“&”和所有括号。这些字母对于Linux shell有特定的含义。
  
  文件名中一定不能含有“/ ”,因为“/ ”在Linux的目录树中表示根目录或是路径中的分隔符(如同DOS中的“\”)。
  
  在对一个含有特别字符的文件操作时,应当用一对单引号将其括起来,这样shell就不会对他们进行处理了。例如,要删去一个名为my file*的文件(文件名中有空格和星号),应当写为:
  
  $ rm ´my file*´
  
  这里要注意的是我们使用单引号而非双引号进行引用。对某些特别字符即使用双引号进行引用,shell还是会对其进行解释,因此双引号的功能比单引号要弱一些。
  
  下面是对一些特别字符的说明:
  
  星号(*):匹配零个或多个字符;
  
  ?:匹配所有一个字符;
  
  [abc1]:匹配所有一个在枚举集合中的字符。在该例中,该集合是a、b、c或1;
  
  [a-z]:匹配所有一个小写字符;
  
  [A-F]:匹配所有一个从A到F的大写字符;
  
  [0-9]:匹配所有一个单个数字;
  
  [a-z A-Z 0-9]:匹配所有字符(小写或大小)或所有数字。
  
  例如,下面的命令将列出当前目录下的所有文件的文件名(除了以点号开头的文件)。
  
  $ ls *
  
  以点号开头的文件类似于DOS中的隐藏文件。用ls -a或ls .*命令才能显示这些文件。这些以点号开头的文件常在用户主目录中,用做用户的设置文件。
  
  下面的命令显示了含有点号的文件。
  
  $ ls *.*
  
  下面的命令显示了含有两个点号的文件。
  
  $ ls *.*.*
  
  Linux不具有文件扩展名的概念或所有其他DOS文件名特性(如,Micro~1.doc)。
  
  例如,下面的命令将显示当前目录下所有以“a”、“b”或所有大写字母开头的文件的文件名。
  
  $ ls [abA-Z]*