(整理自《鸟哥的Linux私房菜》书籍)
一、文件种类:
- 常规文件:(第一个字符为【-】)他又可以分为:纯文本文件(内容为我们人类可以直接读懂的文件,几乎我们可以用来作为设置的文件都是这一类)、二进制文件(我们的系统认识的文件,由0和1组成,比如我们Linux当中的可执行文件除了scripts和脚本文件不算就是这种格式)、数据文件(有些程序在执行的过程中会去读取某些特定格式的文件,这些文件就是数据文件)。
- 目录文件:(第一个字符为【d】)
- 链接文件:(第一个字符为【l】),类似于我们windows系统下面的快捷方式
- 设备与设备文件:与系统周边及存储有关的文件,大多在/dev下,有区块设备文件(第一个字符为【b】,就是一些存储数据,以提供给系统随机存取的接口设备)和字符设备文件(第一个字符为【c】,一些串行端口的接口设备,如就键盘、鼠标等)
- 数据接口文件:(第一个字符为【s】)通常被用在网络的数据交换上
- 数据输送文件:(第一个字符为【p】)主要用来解决多个程序同时读写一个文件所造成的错误问题。
二、Linux文件扩展名:
基本上,Linux 的文件是没有所谓的『扩展名』的,我们刚刚就谈过,一个 Linux 文件能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有。只要你的权限当中具有 x 的话,例如[ -rwxr-xr-x ] 即代表这个文件具有可以被执行的能力。
虽然如此,不过我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以, 通常我们还是会以适当的扩展名来表示该文件是什么种类的。底下有数种常用的扩展名:
• *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用 shell 写成的,所以扩展名就编成 .sh ;
• *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名啰!
• *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可
使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果。
基本上,Linux 系统上的文件名真的只是让你了解该文件可能的用途而已, 真正的执行与否仍然需要权限的规范才行!例如虽然有一个文件为可执行文件, 如常见的/bin/ls 这个显示文件属性的指令,不过,如果这个文件的权限被修改成无法执行时, 那么 ls 就变成不能执行。
上述的这种问题最常发生在文件传送的过程中。例如你在网络上下载一个可执行文件,但是偏偏在你的 Linux 系统中就是无法执行!那么就是可能文件的属性被改变了!不要怀疑,从网络上传送到你的 Linux 系统中,文件的属性与权限确实是会被改变的!
三、Linux 文件长度限制:
在 Linux 底下,使用传统的 Ext2/Ext3/Ext4 文件系统以及近来被 CentOS 7 当作预设文件系统的 xfs 而言,针对文件的档名长度限制为:单一文件或目录的最大容许文件名为 255bytes,以一个 ASCII 英文占用一个 bytes 来说,则大约可达 255 个字符长度。若是以每个中文字占用 2bytes 来说, 最大档名就是大约在 128 个中文字之间!
四、Linux 文件名的限制:
由于 Linux 在文字接口下的一些指令操作关系,一般来说,你在设定 Linux 底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:
* ? > < ; & ! [ ] | \ ‘ " ` ( ) { }
因为这些符号在文字接口下,是有特殊意义的!另外,文件名的开头为小数点【.】时, 代表这个文件为『隐藏档』;同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名。
原文地址:https://www.cnblogs.com/ericz2j/p/12044362.html