在Linux中,大小写字母是严格区分开的。例如,my-filE、my-file、my-FILE是三个不同的文件(口令也是要严格区分大小写的。同样,UNIX和C开发语言也都要严格区分大小写字母)。
文件名长度最大可以为256个字符,它通常是由字母、数字、“.”(点号)、“_”(下划线)和“-”(减号)组成的。另外还有一些字母是合法的,但是,我们并不推荐使用它们。例如,“*”(星号)、“?”(问号)、“ ”(空格)、“$”(美元符号)、“&”和任何括号。这些字母对于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]*
3.1.2
Linux文件名基本知识
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/4e35747ca177b366df6a3b02a19c3c91.html