运维系列之二 Linux文件种类和扩展名
一、文件种类
1、普通文件
用ls查看文件属性时,显示的是[-]
2、目录文件(directory)
文件属性第一个为[d]
3、连接文件(link)
类似于win下的快捷方式,文件第一个属性为[l]
4、设备与设备文件
与系统外设和与存储相关的文件,通常会放在/dev目录下。又分为两种:
(1)块(block)设备文件
存储数据,提供系统随机访问的接口设备,如硬盘、软盘。用户可以随机在不同快读写,这种设备就是成组设备。
(2)字符(character)设备文件
一些串行端口的接口设备,例如键盘、鼠标等。这些设备的特征就是“一次性读取”,不能截断读取。在/dev目录下我们可以看到很多这种文件
5、套接字(sockets)
又称为数据接口文件,这种类型的文件通常被用于网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过这个socket来进行数据的通信了。文件第一个属性为[s],通常在/var/run可以看到这种文件类型。
6、管道(FIFO,pipe)
FIFO也是一种特殊的文件类型,它的主要的目的在解决多个程序访问同一个文件所造成的错误问题。FIFO是first-in-first-out的缩写。第一个属性为[p]。
二、Linux文件扩展名
一个Linux文件能否被执行,与它的第一列的十个属性有关,与文件名一点关系也没有。这个跟windows有点不一样,win下的可执行文件扩展名通常是.com、.exe、.bat等,而在Linux下,只要文件具有x就代表这个文件具有可执行权限。
一个文件能否被执行成功不仅与是否具有可执行权限有关,还与文件内容是否可执行有关。
在Linux中虽然文件后缀扩展名并没有什么实际的意义,但文件扩展名有利于我们了解文件的类型,是用来干嘛的,所以通常文件还是会加适当的扩展名。
几种常用的扩展名:
*.sh: 脚本或批处理文件,因为批处理文件使用shell写的,所以扩展名为sh
*Z、*tar、*.tar.gz、*.zip、*.tgz: 经过打包的压缩文件。这是因为压缩的文件分别是gunzip、tar等,由于不同的压缩软件,而取其相关的扩展名。
*.html、*.php: 网页相关文件
Linux系统的文件名只是让你了解文件可能的用途,真正的执行与否仍然需要权限的规范才行。
我们使用Linux的时候经常遇到这种问题,从网络上下载一个可执行文件,但在Linux系统里就是无法运行,很有可能就是文件权限的问题。在从网络上传到我们的Linux系统中,文件的属性和权限会发生改变。
三、Linux文件长度的限制
在Linux下面,使用Ext2/Ext3文件系统时,针对文件名的文件长度限制为:、
(1)单一文件或目录的最大容许文件名为255个字符。
(2)包含完整路径名称及目录的完整文件名为4096个字符
四、Linux文件名的限制
由于Linux在文字界面下的一些命令操作关系,在设置Linux文件名时,最好避免一些特殊的字符,如
* ?< > ; & ! [ ] \ ‘ “ ` ( ) { }
因为这些符号在命令行界面下是有特殊含义的。如文件开头是“.”的文件代表这个文件是“隐藏文件”。