`

linux 文件名命名规则

阅读更多

http://xu020408.blog.163.com/blog/static/26548920097209315756/

 

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]键可以极大的节约时间,使处理复杂的长文件名变得轻松。例如,使用自动完成的功能,可以极大的减化输入以下这个长文件名的工作。

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

  我只要输入

  dir Eu<Tab>

  如果没有其他文件的文件名以Eu 开头,输入<Tab>之后,系统会自动输入文件名的其余部分。
如果还有其他文件的文件名也以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系统目录的命名规则: 1、遵循FHS(Filesystem Hierarchy Standard)标准 2、严格区分大小写(字母相同大小写不同视为两个文件) 3、目录也是文件,在同一路径下,两个文件不能同名(跟Windows相同) 4、支持...

    linux教程——很使用的那种

    linux中命名规则:除了/之外,所有的字符都合法。大小写敏感,以.开头的文件是隐藏文件。 命令格式:命令 -选项 参数 当有多个选项时,可以写在一起。 ..表示当前目录的父目录,cd ..当中一定有个空格。 文件处理...

    Linux系统中批量创建文件,和批量修改文件名

    编写脚本,在/tmp 目录下批量创建 500 个文件,命名规则为:姓名.数字.hack.html 方法一: 1、touch name.{1…500}.hack.html 方法二: 2、for i in seq 500;do touch name.$i.hack.html done For i in使用循环进行...

    linux g++编译,链接助手

    ./ant.sh cpp -n xxx.cp -p com_chobits_util按照指定命名空间名字、代码文件名在src下创建文件夹和cpp文件 ./ant.sh build 编译src下所有cpp,在bin目录下生成对应的.o文件文件(类似java-classes生成规则),并...

    linux应用与开发基础

    3.3 SHELL命令基本规则............................................................ 59 3.4 常用SHELL命令................................................................ 60 3.5 远程SHELL服务................

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

    PlexRenamer:重命名文件,以便 Plex 媒体服务器可以更正确地处理它们

    然后打开终端(Mac OSX、Linux)或 cmd.exe (Windows) 并运行python plexRenamer.py 其中是要重命名的内容文件夹的完整路径,如果有空格则输入整个路径在引号中,例如:“D:\TV Shows\The Simpsons” 您确实应该...

    Linux命令笔记

    1:日志文件的命名规则 2:logrotate配置文件 3:把apache日志加入轮替 4:logrotate日志轮替 语法 logrotate [选项] 配置文件名 rsyslogd-日子服务 1:日志文件格式 2:/etc/rsyslog.comf配置文件 第九部分:...

    入门学习Linux常用必会60个命令实例详解doc/txt

    这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个 IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备,通常IDE...

    一文了解Go语言中编码规范的使用

    每个语言都有自己特色的编码规范,学习该语言的命名规范,能让你写出来的代码更加易读,...文件若具有平台特性,应以 文件名_平台.go 命名,比如 utils_ windows.go,utils_linux.go,可用的平台有:windows, unix, po

    2010-2011华南理工大学操作系统课程设计(完整源代码和详细文档)

    copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到模拟...

    TOPTP v1.0纯净版(for ThinkPHP2.1RC1)-ThinkPHP代码生成器

    、删、查、改代码,命名规则也有诸多限制,很多第一个字母都要大写,模块文件名后面要跟Action.class.php,模 型文件名后面要跟.Model.class.php 这些繁琐的规则,稍不注意你就出错了。 或许你用ThinkPHP做网站都是...

    Gun make中文手冊

    作为一个Linux程序员,make工具的使用以及编写Makefile是必需的 目 录 第一章:概述 1.1 概述 1.2 准备知识 第二章:GNU make 介绍 2.1 Makefile简介 2.2 Makefile规则介绍 2.3 简单的示例 2.4 make如何...

    宋劲彬的嵌入式C语言一站式编程

    3.2. 文件名代换(Globbing):* ? [] 3.3. 命令代换:`或 $() 3.4. 算术代换:$(()) 3.5. 转义字符\ 3.6. 单引号 3.7. 双引号 4. bash启动脚本 4.1. 作为交互登录Shell启动,或者使用--login参数启动 4.2. 以交互非...

    TMCoursework_1

    本项目命名规则 变量 驼峰式命名,如:appleTree 功能 下划线式,如:apple_tree 文件名 下划线式,如apple_tree.py 主要方法 每个py文件中,计算过程需要函数封装,同时生成相应的主要方法进行测试。 mac和window...

    Shell攻关之Bash变量

    2.变量命名规则 (1)变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线组成 (2)变量名的长度不得超过255个字符 (3)变量名在有效的范围内必须是唯一的 (4)在Bash中,变量的默认类型都是字符串...

    IIS6.0 IIS,互联网信息服务

    添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。 4.添加虚拟目录:比如你的主目录在“D:\Wy”下,而你想输入“192.168.0.1/test”的格式...

    Git权威指南PDF完整版

    17.7 里程碑命名规范/ 247 第18章 Git 分支/ 253 18.1 代码管理之殇/ 253 18.1.1 发布分支/ 253 18.1.2 特性分支/ 256 18.1.3 卖主分支/ 257 18.2 分支命令概述/ 258 18.3 “Hello World”开发计划/ 259 18.4 基于...

Global site tag (gtag.js) - Google Analytics