Linux下的文件类型及文件后缀名详解

2024-08-20 18:18

本文主要是介绍Linux下的文件类型及文件后缀名详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux下的文件类型及文件后缀名详解

1、Linux文件的扩展名;

一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。

现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。在我们打开某个文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。

在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。

file.tar.gz file.tgz file.tar.bz2 file.rar file.gz file.zip ... ... 这些大家都熟悉,是归档文件。要通过相应的工具来解压或提取;

file.php 这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件;

file.so 这类是库文件;

file.doc file.obt 这是OpenOffice 能打开的文件;

... ...

用一些工具创建的文件,其后缀也不相同,就看我们用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,创建出来的文件后缀名也不一样。


2、Linux 文件类型;

Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。

Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明;


2.1 普通文件;

[root@localhost ~]# ls -lh install.log
-rw-r--r-- 1 root root 53K 03-16 08:54 install.log

我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。这类文件的删除方式是用rm 命令;


2.2 目录;

[root@localhost ~]# ls -lh
总计 14M

-rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root   53K 03-16 08:54 install.log
-rw-r--r-- 1 root root   14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17
drwxr-xr-x 2 root root  4.0K 04-19 10:53 mydir
drwxr-xr-x 2 root root  4.0K 03-17 04:25 Public

当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。


2.3 字符设备或块设备文件;

如时您进入/dev目录,列一下文件,会看到类似如下的;

[root@localhost ~]# ls -la /dev/tty
crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty
[root@localhost ~]# ls -la /dev/hda1
brw-r----- 1 root disk 3, 1 2006-04-19 /dev/hda1

我们看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备;

我们看到 /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备;

这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。


2.4 套接口文件;

当我们启动MySQL服务器时,会产生一个mysql.sock的文件。

[root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock

注意这个文件的属性的第一个字符是 s。我们了解一下就行了。


2.5 符号链接文件;

[root@localhost ~]# ls -lh setup.log
lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log

当我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名 。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相似。

符号链接文件的创建方法举例;

[root@localhost ~]# ls -lh kernel-2.6.15-1.2025_FC5.i686.rpm
-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
[root@localhost ~]# ln -s kernel-2.6.15-1.2025_FC5.i686.rpm  kernel.rpm
[root@localhost ~]# ls -lh kernel*
-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root  33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm


3、关于本文;

   在Linux环境下一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。

     现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。在我们打开某个linux文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。
     在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。

 

Linux下常见的文件扩展名


*.php ------这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件;
*.so -------这类是库文件;
*.doc  *.obt --------这是OpenOffice 能打开的文件;

.bz2 ------bzip2的压缩文件

.gz ------gzip的压缩文件

.tar ------tar打包文件(是包文件不是压缩文件)

.tbz------tar打包并用bzip压缩文件

.tgz-----tar打包并用gzip压缩的文件

.au -----audio文件

.gif -----gif图象文件

.html/.htm-----HTML文件

.jpg-----JPEG图象文件

.pdf------电子文档(PDF格式的)

.png-----PNG图象文件

.ps------postscinpt文件(打印格式文件)

.txt------纯文本文件

.wav-----audio文件

.xpm-----图象文件

.conf-------配置文件

.lock-------LOCK文件(用来判断一个文件或设备是否被使用)

.rpm------REDHATPackage.Manager文件(套件包或软件包)

.c -------C源程序代码文件

.cpp------C++源程序代码文件

.h -------C或C++程序的头文件

.o------程序目标文件

.pl------perl脚本文件

.so-----类库文件

 

以下是部分后缀的详细解释:

1.*.sh

  sh是linux,unix命令,  用途:调用缺省 shell。  语法:请参阅 ksh 命令的语法。将 /usr/bin/sh 文件链接到 Korn shell。  描述:sh 命令调用缺省 shell 并使用它的语法和标志。链接到 /usr/bin/sh 路径的 shell 是缺省的 shell。操作系统的标准配置把 /usr/bin/sh 路径链接到 Korn shell。关于 Korn shell 功能的具体信息,请参阅《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『Korn Shell 或 POSIX Shell 命令』。  标志:请参阅 Korn shell(ksh 命令)的标志。

  文件:/usr/bin/sh 包含 sh 命令。

 

2.*.cfg

     这只是一个为开发及使用方便而"发明"的一个后缀名。这种文件没有固定的格式,用途也仅仅是保存用户的设置。一般为只读,也可以用于读写。

     同样,为了方便起见,里面的内容大多数时候也确实是文本。可以用任何文本编辑器打开。本例中用Source insight。

     智能手机中的文件:CFG 是一个引导文件, CFG 和TFS文件放在同一文件夹中,相当于程序里的头文件。tfs的cfg文件,可以用resource manager 生成。

      CFG(Config)脚本文件,一般用于程序读取指定值,以下为常见格式:
例:

102 (Home)
115 (VolumeUp)
114 (VolumeDown)
248 (Reading)
158 (Back)
139 (Menu)
end

3. *.ko

   是Linux 2.6内核使用的动态连接文件的后缀名,也就是模块文件,用来在Linux系统启动时加载内核模块,一般是驱动程序。

   加载:

   modprobe module-name       or          insmod /path-to/module-name.ko
   但要注意的是,该模块在跟你系统环境类似的库及内核版本下编译才可以使用,否则会出错。

 

4. *.conf

    程序配置文件 ,启动netmeeting

    应用系统中的配置文件,在类unix系统使用广泛,大多数同时有windows和类unix系统版本的软件也使用

 

5. *.allow和*.deny

/etc/hosts.allow和/etc/hosts.deny
     这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问.这两个配置文件的格式如下:
    #服务进程名:主机列表:当规则匹配时可选的命令操作
    server_name:hosts-list[:command] 

     /etc/hosts.allow控制可以访问本机的ip地址,

     /etc/hosts.deny控制禁止访问本机的IP.

     如果两个文件的配置有冲突,以/etc/hosts.deny为准.下面是一个/etc/hosts.allow的示例:
ALL:127.0.0.1 #允许本机访问本机所有服务进程
smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务
ALL关键字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况.

 

6. *.types

   在遇到有2个后缀的文件时,在该文件中检查这个有2个后缀的文件是否被定义了,以便选择合适的文件处理方法。

   This file controls what Internet media types are sent to the client for given file extension(s).

    每遇到一种后双重后缀名(如xxx.php.rar)的文件,Apache都会去conf/mime.types 文件中检查最后一个后缀, 如果最后一个后缀并没有在mime.types文件中定义, 则使用前一个后缀来解释 , 因为在默认情况下,rar并未在mime.types中定义, 故Apache会使用php后缀来解释文件。(这就是漏洞的原因所在)

 

7. *.rc

    VC中以rc为扩展名的文件称为资源脚本文件, 其中包含了应用程序中用到的所有的windows资源, rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改。

8. *.so

   在linux环境下,c++编译得到库文件后缀包括:.so or .a or .la,当然,linux下文件的类型是不依赖于其后缀名的,后缀及其含义:
.so 为共享库 : 动态库(shared library/shared object/dynamic link library)

.so.1, .so.6等:后边的是表示版本而已,这都是动态运行库,大部分属于基础库,即glibc。

.a为静态库 : archive / static library
.la为libtool自动生成的一些共享库,可以用vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式   file *.la

 

这篇关于Linux下的文件类型及文件后缀名详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090820

相关文章

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作