linux文件名命名规则

linux文件名命名规则

Linux 系统区分英文字符的大小写。命名目录和命名文件的规则是相同的。除非有特别的原

因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。 Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。有些转意字符(即该字符被系统借用,表示某种特殊含义)在Linux 的命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器COMMAND.COM)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下划线)来替代。"/" 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的"\),因此"/"不能出现在文件名中。和DOS一样,"." 和 ".." 分别用来表示"当前目录"和"父目录", 因此它们也不能作为文件名。正如DOS 中一样,我们不能将文件命名为 . 或者 .. (点或者双点)——它们分别代表当前目录和当前目录的父目录(上一级目录)。这跟DOS中是完全一致的。

在Linux下可以使用长文件名和目录名,可以给它们取任何名字,但是必须遵守以下规则: ☆除了/外,所有的字符都可以;

☆有些字符最好不用,如空格符,制表符,退格符和字符:? @ # $&()\|; ‘’“”等; ☆避免使用+ -或.作为普通文件名的第一个字符(在Linux下以.开头的文件是属于隐藏文件); ☆另外和Windows文件命名不一样的是,在Linux下文件名大小写敏感。

这是另一份资料:

Linux 系统区分英文字符的大小写。比如,myfile, Myfile和myFILE表示的是三个不同的文件。同样,用户密码和登录名也需要区分大小写(这里沿用了Unix 和 C 语言的命名规则)。命名目录和命名文件的规则是相同的。除非有特别的原因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。

Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。有些转意字符(即该字符被系统借用,表示某种特殊含义)在Linux 的命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器 COMMAND.COM)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下划线)来替代。

"/" 既可代表目录树的根也可作为路径名中的分隔符(类似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_text.txt.zip 。另有一些DOS中的命名特色在Linux中是完全找不到的(比方说Micro~1.doc )。

以下的命令会找出扩展名为“htm”后再跟任意一个字符的文件:

locate *.htm?

以下命令可列出当前目录中所有文件名以a,b或者任意大写字母开头的文件:

ls [abA-Z]*

以下命令可列出当前目录中所有文件名以a开头,以n结尾的文件:

ls a*n

命令行自动完成是一个有用的功能——使用[Tab]键可以极大的节约时间,使处理复杂的长文件名变得轻松。例如,使用自动完成的功能,可以极大的减化输入以下这个长文件名的工作。

dirEurosong\ 2000\ Olson\ Brothers\ -\ Fly\ on\ the\ wings\ of\ love\ \(denmark\).mp3

我只要输入

dirEu

如果没有其他文件的文件名以Eu开头,输入之后,系统会自动输入文件名的其余部分。

如果还有其他文件的文件名也以Eu开头,我们可以查看一下可能的选择(系统会列出),进一步输入文件名中的下一两个字符,从而使文件的选择唯一化,系统的自动写成功能就可以启动完成整个长文件名的输入了。文件名中的反斜线作用在于提示系统其后继的字符“空格”仅取其字面意义,即,文件名中包含的确实是空格。

文件名中的有“怪”字符怎么办?大部分问题可以通过自动完成功能解决。另外,处理文件名中含有转意字符的文件,我们可以使用成对的‘’(单引号)。由于这些特殊的转意字符被单引号引用,命令解释器不会试图去解释其特殊意义。例如,给一个名为my file*的文件更名(文件名中含空格和*),我们可以使用:

mv 'my file*' filename_without_weird_characters.txt

请注意我使用了一对‘’号 (单引号)。使用成对的“”(双引号)引用通常没有使用‘’有效。如果你使用“”号(双引号), 部份转意字符可能会被命令解释器加以解释(这就意味着它们可能被转意,而不是保持字面意义)。

跟从UNIX的传统,在Linux上,创建文件时,我们可以在文件名中可以使用几乎任何字符,包括不可打印字符(控制字符)。但是这情况非常少见。如果你在遇到文件名使用了这些字符,你可能会感觉很异样。我通常会在适当的位置使用一个转意字符*对这种文件进行重命名。我会先使用ls命令确认我要重命名的文件的文件名,然后对这个文件进行更名(使用mv 命令):

ls–l myfile*y.html

mv myfile*y.html myfile.html

(此例中我假定非标准字符位于字母e和y之间)

这里举一个关于在文件名中使用非常规字符的极端的例子: 创建一个文件名以短横线 - 开头的文件,再等它删除。用常规的删除命令似乎没有办法(因为短横钱通常是用来引导命令选项的)。例如:

dir> -junk

以上命令将创建一个以-junk为名的文件(跟DOS类似,符号>将dir命令的输出重定向到一个名为“-junk”的文件。常规的删除文件命令无法把这个文件删除。我们需要使用:

rm ./-junk

文件名前的./ 表示当前目录。在此其目的是避免文件名把的首字符 - 被命令解释器当作rm命令的选项引导。事实上没有必要在文件名中使用这些特殊字符。遵从传统的命名规则,不会过多地使事情复杂化。

除了使用自动完成,单引号,双引号之外,我们也可以利用 \ (反斜线) 对文件名中包含了非常规字符的文件进行操作。反斜线的作用在于屏蔽其后继字符的特殊意义。例如,我可以使用如下命令创建一个以 *?[ 为文件名的文件:

touch \*\?\[

(touch 命令创建一个空文件。如果同名文件已存在,则改变该文件最后更新的日期/时间)。

linux文件名命名规则

Linux 系统区分英文字符的大小写。命名目录和命名文件的规则是相同的。除非有特别的原

因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。 Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。有些转意字符(即该字符被系统借用,表示某种特殊含义)在Linux 的命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器COMMAND.COM)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下划线)来替代。"/" 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的"\),因此"/"不能出现在文件名中。和DOS一样,"." 和 ".." 分别用来表示"当前目录"和"父目录", 因此它们也不能作为文件名。正如DOS 中一样,我们不能将文件命名为 . 或者 .. (点或者双点)——它们分别代表当前目录和当前目录的父目录(上一级目录)。这跟DOS中是完全一致的。

在Linux下可以使用长文件名和目录名,可以给它们取任何名字,但是必须遵守以下规则: ☆除了/外,所有的字符都可以;

☆有些字符最好不用,如空格符,制表符,退格符和字符:? @ # $&()\|; ‘’“”等; ☆避免使用+ -或.作为普通文件名的第一个字符(在Linux下以.开头的文件是属于隐藏文件); ☆另外和Windows文件命名不一样的是,在Linux下文件名大小写敏感。

这是另一份资料:

Linux 系统区分英文字符的大小写。比如,myfile, Myfile和myFILE表示的是三个不同的文件。同样,用户密码和登录名也需要区分大小写(这里沿用了Unix 和 C 语言的命名规则)。命名目录和命名文件的规则是相同的。除非有特别的原因,否则用户创建的文件和目录名要使用小写字符。大多数的 Linux 命令也使用小写字符。

Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。有些转意字符(即该字符被系统借用,表示某种特殊含义)在Linux 的命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器 COMMAND.COM)。这样的转意字符有:"?"(问号),"*"(星号), " "(空格), "$"(货币符), "&", 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有" "(空格),但建议用户用"_"(下划线)来替代。

"/" 既可代表目录树的根也可作为路径名中的分隔符(类似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_text.txt.zip 。另有一些DOS中的命名特色在Linux中是完全找不到的(比方说Micro~1.doc )。

以下的命令会找出扩展名为“htm”后再跟任意一个字符的文件:

locate *.htm?

以下命令可列出当前目录中所有文件名以a,b或者任意大写字母开头的文件:

ls [abA-Z]*

以下命令可列出当前目录中所有文件名以a开头,以n结尾的文件:

ls a*n

命令行自动完成是一个有用的功能——使用[Tab]键可以极大的节约时间,使处理复杂的长文件名变得轻松。例如,使用自动完成的功能,可以极大的减化输入以下这个长文件名的工作。

dirEurosong\ 2000\ Olson\ Brothers\ -\ Fly\ on\ the\ wings\ of\ love\ \(denmark\).mp3

我只要输入

dirEu

如果没有其他文件的文件名以Eu开头,输入之后,系统会自动输入文件名的其余部分。

如果还有其他文件的文件名也以Eu开头,我们可以查看一下可能的选择(系统会列出),进一步输入文件名中的下一两个字符,从而使文件的选择唯一化,系统的自动写成功能就可以启动完成整个长文件名的输入了。文件名中的反斜线作用在于提示系统其后继的字符“空格”仅取其字面意义,即,文件名中包含的确实是空格。

文件名中的有“怪”字符怎么办?大部分问题可以通过自动完成功能解决。另外,处理文件名中含有转意字符的文件,我们可以使用成对的‘’(单引号)。由于这些特殊的转意字符被单引号引用,命令解释器不会试图去解释其特殊意义。例如,给一个名为my file*的文件更名(文件名中含空格和*),我们可以使用:

mv 'my file*' filename_without_weird_characters.txt

请注意我使用了一对‘’号 (单引号)。使用成对的“”(双引号)引用通常没有使用‘’有效。如果你使用“”号(双引号), 部份转意字符可能会被命令解释器加以解释(这就意味着它们可能被转意,而不是保持字面意义)。

跟从UNIX的传统,在Linux上,创建文件时,我们可以在文件名中可以使用几乎任何字符,包括不可打印字符(控制字符)。但是这情况非常少见。如果你在遇到文件名使用了这些字符,你可能会感觉很异样。我通常会在适当的位置使用一个转意字符*对这种文件进行重命名。我会先使用ls命令确认我要重命名的文件的文件名,然后对这个文件进行更名(使用mv 命令):

ls–l myfile*y.html

mv myfile*y.html myfile.html

(此例中我假定非标准字符位于字母e和y之间)

这里举一个关于在文件名中使用非常规字符的极端的例子: 创建一个文件名以短横线 - 开头的文件,再等它删除。用常规的删除命令似乎没有办法(因为短横钱通常是用来引导命令选项的)。例如:

dir> -junk

以上命令将创建一个以-junk为名的文件(跟DOS类似,符号>将dir命令的输出重定向到一个名为“-junk”的文件。常规的删除文件命令无法把这个文件删除。我们需要使用:

rm ./-junk

文件名前的./ 表示当前目录。在此其目的是避免文件名把的首字符 - 被命令解释器当作rm命令的选项引导。事实上没有必要在文件名中使用这些特殊字符。遵从传统的命名规则,不会过多地使事情复杂化。

除了使用自动完成,单引号,双引号之外,我们也可以利用 \ (反斜线) 对文件名中包含了非常规字符的文件进行操作。反斜线的作用在于屏蔽其后继字符的特殊意义。例如,我可以使用如下命令创建一个以 *?[ 为文件名的文件:

touch \*\?\[

(touch 命令创建一个空文件。如果同名文件已存在,则改变该文件最后更新的日期/时间)。


相关内容

  • 2017年永州市中职网络搭建及应用竞赛试题
  • 2017年 永州市网络搭建及应用试题 2017年永州市中等职业院校技能竞赛 网络搭建及应用试题 比赛注意事项: 1.本次竞赛时间为180分钟,中间不安排休息,竞赛结束后,请自觉停止操作. 2.参赛选手应增强角色意识,科学合理分工与合作. 3.本次竞赛分三部分,其中网络搭建50%,Windows 系统 ...

  • 西北大学linux选修课考试答案
  • 1. 安装Linux至少需要哪两个分区?还有哪些常用分区? 至少有/和swap分区.其它常用分区有:/bin /home /usr /var /usr/local /tmp等 2. 安全专家建议,安装Linux时,最好为主要的目录建立单独的分区,试分析这样做 的优点. 由于每个分区指定了自己的大小, ...

  • 细说Windows与Docker之间的趣事
  • 作者   彭爱华    发布于   2016年8月30日 众所周知,Docker能打通开发和运维的任督二脉,所谓DevOps是也.有朋友说,这符合王阳明的"知行合一"之教.而Windows Server 2016内置的Windows Docker亦已经出来一段时间,这里就来和诸公 ...

  • 1.android发展历程简介
  • android (Google 公司开发的操作系统) Android 是一种基于Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google 公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较多人使用"安卓"或"安致& ...

  • linux 目录结构及其相关命令
  • 目录也是一个文件,它的唯一功能是用来保存文件及其相关信息.所有的文件,包括普通文件.设备文件和目录文件,都会被保存到目录中. 主目录 登录后,你所在的位置就是你的主目录(或登录目录),如果是root用户则到达/root目录,其他用户则到达/home/用户名,接下来你主要是在这个目录下进行操作,如创建 ...

  • FPGA的嵌入式系统 来自 对待同一事物不一样的心情,将有不同的感受
  • FPGA的嵌入式系统 2011-08-12 00:10 1.什么是嵌入式系统? 在<基于PowerPC的嵌入式Linux>一书中,表述为:在有限的资源及有限的体积中运行的.高效地实现某种特殊功能的功能集合. IEEE(电气和电子工程师协会) 的定义,嵌入式系统是"控制.监视或者 ...

  • 在Ubuntu系统上使用Samba4来创建活动目录架构(一)
  • Samba 是一个自由的开源软件套件,用于实现 Windows 操作系统与 Linux/Unix 系统之间的无缝连接及共享资源. Samba 不仅可以通过 SMB/CIFS 协议组件来为 Windows 与 Linux 系统之间提供独立的文件及打印机共享服务,它还能实现活动目录(Active Dir ...

  • 开放iPhone源代码的方法概述
  • 摘要:随着移动通信技术的发展,手机成为人们工作生活中必备的通讯工具和日益重要的信息载体.随着功能的增加,手机已经从一个功能单一的移动电话发展成一台小型的个人电脑,与此同时利用手机进行的犯罪活动也与日俱增,对手机内部及通讯过程中的数据信息进行有效获取.打击这类犯罪,已成为亟待解决的问题,从手机证据的来 ...

  • Linux.课后题答案
  • 第二章 常用命令 选择题 1. 若要设置/usr/myprog文件的拥有者有读.写和可执行权限,用户组和其他用户均没有对该文件的操作权限,以下操作命令中,正确的是( A ). A. chmod 700 /usr/myprog B. Chown 700 /usr/myprog C. Chmod u=r ...