2024年6月8日发(作者:)
linux 文件名命名规则
Linux 系统区分英文字符的大小写。命名目录和命名文件的规则是相同的。除非有特别的原
因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。
Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、
数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它
符号, 但并不建议用户这样做。 有些转意字符 (即该字符被系统借用,表示某种特殊含义)
在Linux 的 命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器
)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号
等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下
划线)来替代。"/" 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的"),因
此"/"不能出现在文件名中。和DOS一样,"." 和 ".." 分别用来表示"当前目录"和"父目录", 因
此它们也不能作为文件名。正如DOS 中一样,我们不能将文件命名为 . 或者 .. (点或者
双点)——它们分别代表当前目录和当前目录的父目录(上一级目录)。这跟DOS中是完全
一致的。
在Linux下可以使用长文件名和目录名,可以给它们取任何名字,但是必须遵守以下
规则:
☆除了/外,所有的字符都可以;
☆有些字符最好不用,如空格符,制表符,退格符和字符:? @ # $&()|; ‘’“”<>等;
☆避免使用+ -或.作为普通文件名的第一个字符(在Linux下以.开头的文件是属于隐藏文件);
☆另外和Windows文件命名不一样的是,在Linux下文件名大小写敏感。
这是另一份资料:
Linux 系统区分英文字符的大小写。比如,myfile, Myfile 和 myFILE表示的是三个不同的文
件。同样,用户密码和登录名也需要区分大小写(这里沿用了Unix 和 C 语言的命名规则)。
命名目录和命名文件的规则是相同的。除非有特别的原因,否则用户创建的文件和目录名要
使用小写字符。大多数的 Linux 命令也使用小写字符。
Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字
母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的
其它符号, 但并不建议用户这样做。 有些转意字符 (即该字符被系统借用,表示某种特殊
含义) 在Linux 的 命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器
)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号
等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下
划线)来替代。
"/" 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的"),因此"/"不能出现
在文件名中。
和DOS一样,"." 和 ".." 分别用来表示"当前目录"和"父目录", 因此它们也不能作为文
件名。
正如DOS 中一样,我们不能将文件命名为 . 或者 .. (点或者双点)——它们分别代
表当前目录和当前目录的父目录(上一级目录)。这跟DOS中是完全一致的。
下面列出了一些转意字符及其意义:
* = 用于匹配任意长度大于等于零的字符序列。以 . (点)开头的文件名除外。
? = 用于匹配任意单个字符
[abC1] = 用于匹配枚举集合中任意单个字符。比例中,集合由‘a’,‘b’,‘c’,‘1’
组成。
[a-z] = 用于匹配任意小字字母
[A-F] = 用于匹配任意大写字母
[0-9] = 用于匹配任意个位数字
[a-zA-Z0-9] = 用于匹配任意字母(大小写)或者数字。
(反斜线)也是一个特殊的字符。它屏蔽后继特殊字母的特殊含义(转意),使该字
符仅取其符号所代表的字面意义。
例: 下面的命令会列出当前目录中除了文件名以 . 开头的文件之外的任何文件。
ls *
与此等价的命令是ls 或者 dir (不需要后跟 “*”)。 文件名以 . 开头的文件不被列
出是因为 “.”是文件名的首字符,它并不与“*”匹配。我们可以把文件名以 . 开头的文
件等价地理解成DOS中隐藏文件。使用ls –a (带 all 选项的ls 命令)或者 ls .* 命令
来查看这些“点”文件。“点”文件在用户的home目录中很常见。它们通常是用户级的配
置文件。
以下命令可列出当前目录中文件名含 . 的任何文件 (文件名以点开头的除外)。
ls *.*
以下命令可列出当前目录中文件名含两个点的任何文件(文件名以点开头的除外)。
ls *.*.*
请注意Linux中没有与DOS中文件扩展名相应的概念,但是你可以使用扩展名。例如,
一个文件可以命名为 my_ 。另有一些DOS中的命名特色在Linux中是完全找不到
的(比方说Micro~ )。
以下的命令会找出扩展名为“htm”后再跟任意一个字符的文件:
locate *.htm?
以下命令可列出当前目录中所有文件名以a,b或者任意大写字母开头的文件:


发布评论