一天一点学习Linux之文件类型和后缀名

2011年01月18日 Linux基础 评论 2 条 阅读 12,221 views 次

我们上一节讲的文件权限里面,用ls -l命令查看的第一栏第一个字符,除了我们前面讲的那些文件类型外,还有哪些类型的文件呢?我们也知道,在微软的win系统中,文件的后缀名是一个重要的概念,但在linux系统中,这个后缀名就不那么重要,虽然不重要,但为了管理和识别方便,还是存在这个后缀名的。这就是我们今天讲要讲的两个内容:文件类型和后缀名。

Linux常见的文件类型

一般的文件

这个就是我们通过ls -l列出来,第一栏第一个字符是“-”的文件,根据文件的内容也可以分几类:

纯文本文件(ASCII):这个就相当于记事本一样,称为纯文本文件,我们可以直接读取文件里面的内容。这种文件在Linux系统中占很多。

二进制文件(binary):Linux系统中的可执行文件(scripts)就是一个二进制的文件,而且这个文件要有x权限才能被执行。我们系统中的一些命令就是这类型的文件。

数据格式文件(data): 在Linux系统中,有些程序在运行的时候会读取某些特定的数据库,这些文件就是数据文件。如我们前面讲的last命令,调用的就是/var/log/wtmp,如果我们用cat命令来查看/var/log/wtmp这个文件,你发现全是乱码。

关于一些其他的文件类型,如连接文件、设备文件、数据接口文件(sockets)、管道文件(pipe)等等,这些也是一些特殊的文件类型,我们只需要了解就OK了,在后面的学习中,见到的时候,你要知道他是什么东西就可以了。如果想更深入的学习,那就找相关的资料,慢慢研究,如,如何查看一个数据文件等。

Linux文件的后缀名

我们在刚开始的时候也说过,在Linux系统上,对这个后缀名要求并不像微软的win系统一样严格,只是为了方便确认文件是什么样的文件,才在后面加上了相应的后缀。如果一个文件能用cat命令读取里面的内容,我们改了后缀后,同样还是能用cat读取出来。

我们也知道,在微软的win系统上,常用的可执行文件一般就是以.com、.bat、.exe来结尾。而在我们的Linux系统上就不一样了,什么样的文件我都可以给他加上X(可执行)权限,但能不能执行成功,就要看文件本身的内容了。这里面有重要的一点,就是“可以被执行和可以执行成功是不一样的”。例如,我们在root用户的家目录里面有个install.log文件,我们给他加上X权限,虽然是可以执行的文件,但执行后,没有什么结果,因为这个文件里面内容不是我们系统所能执行的,当然他是执行不成功啦!

所以说,为了方便我们认识系统中的文件是干吗的。Linux系统还是会以相应的后缀名来表示文件的种类的。下面我们就看看一些常见的后缀
.sh : 这个通常是我们自己写的一些脚本(scripts)文件,一般都是通过shell写的,所以以.sh来表示。
.z,.tar,.tar,.gz,.zip,.tgz :这一类的文件就是压缩文件,只是采用的压缩方式不同而已。
.log : 这一类文件,就是一些日志文件。
.conf : 这类文件就是一些配置文件,这个在Linux系统上见到的最多。
.rpm : 这是红帽的软件包,当然,不同的Linux发行版本,他们使用的软件包的后缀是不一样的。
.php,.jsp,.html,.css : 这一类,都是网站类型的文件。
当然还有一些其它的后缀,没有什么太大的意义,只是为了我们方便识别,我们简单的了解一下。

 

文件名长度和文件的命名规则

RHEL6中,ext4系统上的文件名长度

想知道某个系统上的文件名的最大长度,我们可以写一个shell脚本来测试,
[root@yufei ~]# cd /tmp/
[root@yufei tmp]# vim testfile

写入如下内容
#!/bin/bash
LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done`
touch $LENTH

保存退出
[root@yufei tmp]# chmod +x testfile
[root@yufei tmp]# ./testfile

这时候可以正常输出一个文件名为a……a(255个)的文件,如果你把上面的脚本的255改成256,再执行一次,就会出现“File name too long”这个错误提示。这就充分说明:
在RHEL6的EXT4系统上,最多的文件名长度为255个字符。

这个长度已经很长了,足够我们用了。在后面的学习中,你会发现,Linux系统上,很多软件的名字都很长,如果一个字一个字的打会很浪费时间,而且有时还会打错,这是不是太不方便了?当然不是啦,长文件名,有利于我们知道这个文件是干吗的(我是这么认为的),其实是在方便我们。为了不让我们打那么多的字,在Linux系统上,有一个重要的功能键,那就是TAB,这个有补全作用,只要打前几个字,再按TAB,就补全了,如果按两次的话,会显示和这几个字相关的内容。哈哈,使用Linux的朋友不知道这个功能,或不用会这个的话,那就太失败了!

Linux系统中文件的命名规则

我们知道,在Linux系统上,基本上都是用命令来操作的,我们所用的shell,自身就有很多的特殊字符,如果我们的文件名和这个shell里面的特殊字符一样的话,那就不好办了,所以我们在给文件起名的时候,在方便识别的同时,也要避免一些特殊字符,下面我们列举出来,代大家参考(并非不能命令这些字符,只是建议避免)。
- + * ? > < ; & ! [ ] | \ ' " ` ( ) { }

本文关键字:一天一点,学习Linux,RHEL6,文件类型,后缀名

2 条留言  访客:1 条  博主:1 条

  1. avatar 好大的一片叶子

    羽飞大哥,请教一个问题
    有文件名为 11111111111_111_羽飞.doc
    2222222222_222_羽飞.txt
    3333333333_333_羽飞.bmp
    这样的文件,客户已上线服务器,从AIX移到RHEL5.8,中文出现乱码,浏览器下载文件时不能识别文件,客户不许在服务器中安装中文支持包,修改系统编码也无效,现解决方法是,将存量文件后面的羽飞两字去除解决文件名中文乱码问题,修改后的效果为 3333333333_333_.bmp 请问大哥应当如何操作,谢谢
    另外数据库相应字段保存了绝对路径,又怎么删除其中的中文字符呢

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录