Linux不靠扩展名区分文件类型

我们都知道,Windows是依赖扩展名区分文件类型的,比如,“.txt”是文本文件、“.exe”是执行文件、“.ini”是配置文件、“.mp4”是小电影等。但Linux不是。

Linux系统通过权限位标识来确定文件类型,且文件类型的种类也不像Windows下那么多,常见的文件类型只有普通文件、目录、链接文件、块设备文件、字符设备文件等几种。Linux的可执行文件不过就是普通文件被赋予了可执行权限而已。

Linux中的一些特殊文件还是要求写“扩展名”的,但大家小心,并不是Linux一定要靠扩展名来识别文件类型,写这些扩展名是为了帮助管理员来区分不同的文件类型。这样的文件扩展名主要有以下几种:

压缩包:Linux下常见的压缩文件名有*.gz、*.bz2、*.zip、*.tar.gz、*.tar.bz2、*.tgz等。为什么压缩包一定要写扩展名呢?很简单,如果不写清楚扩展名,那么管理员不容易判断压缩包的格式,虽然有命令可以帮助判断,但是直观一点更加方便。另外,就算没写扩展名,在Linux中一样可以解压缩,不影响使用。

二进制软件包:CentOS中所使用的二进制安装包是RPM包,所有的RPM包都用“.rpm”扩展名结尾,目的同样是让管理员一目了然。

程序文件:Shell脚本一般用“*.sh”扩展名结尾,其他还有用“*.c”扩展名结尾的C语言文件等。

网页文件:网页文件一般使用“*.php”等结尾,不过这是网页服务器的要求,而不是Linux的要求。

在此不一一列举了,还有如日常使用较多的图片文件、视频文件、Office文件等,也是如此。

Linux中所有内容(包括硬件设备)以文件形式保存

Linux中所有内容都是以文件的形式保存和管理的(硬件设备也是文件),这和Windows完全不同,Windows是通过设备管理器来管理硬件的。比如说,Linux的设备文件保存在/dev/目录中,硬盘文件是/dev/sd[a-p],光盘文件是/dev/hdc等。