【Linux】文件种类与扩展名
任何装置在Linux底下都是文件。不仅如此,连数据沟通的接口也有专属的文件在负责~所以,你会了解到,Linux的文件种类真的很多~
Linux文件种类
我们在刚刚提到使用『ls -l』观察到第一栏那十个字符中,第一个字符为文件的类型。 除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢?
1)正规文件(regular file )
就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字符为 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的内容,又大略可以分为:
- 纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。几乎只要我们可以用来做为设定的文件都属于这一种文件类型。举例来说,你可以下达『 cat ~/.bashrc 』就可以看到该文件的内容。 (cat 是将一个文件内容读出来的指令)
- 二进制文件(binary):我们的系统其实仅认识且可以执行二进制文件(binary file)。Linux当中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的啦~ 举例来说,刚刚下达的指令cat就是一个binary file。
- 数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。举例来说,我们的Linux在使用者登入时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。
2)目录(directory)
就是目录。第一个属性为 [ d ],例如 [drwxrwxrwx]。
3)链接档(link)
就是类似Windows系统底下的快捷方式! 第一个属性为 [ l ](英文L的小写),例如 [lrwxrwxrwx]
4)设备与装置文件(device)
与系统周边及储存等相关的一些文件,通常都集中在/dev这个目录之下!通常又分为两种:
- 区块(block)设备档 :就是一些储存数据, 以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是啦!你可以随机的在硬盘的不同区块读写,这种装置就是成组设备!你可以自行查一下/dev/sda看看,会发现第一个属性为[ b ]!
- 字符(character)设备文件:亦即是一些串行端口的接口设备,例如键盘、鼠标等等!这些设备的特色就是『一次性读取』的,不能够截断输出。举例来说,你不可能让鼠标『跳到』另一个画面,而是『滑动』到另一个地方啊!第一个属性为 [ c ]。
5)数据接口文件(sockets)
既然被称为数据接口文件,这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的沟通了。第一个属性为 [ s ], 最常在/var/run这个目录中看到这种文件类型了。
6)数据输送文件(FIFO, pipe)
FIFO也是一种特殊的文件类型,它主要的目的在解决多个程序同时存取一个文件所造成的错误问题。FIFO是first-in-first-out的缩写。第一个属性为[p] 。
除了设备文件是我们系统中很重要的文件,最好不要随意修改(通常它也不会让你修改的!), 另一个比较有趣的文件就是链接档。如果你常常将应用程序捉到桌面来的话,你就应该知道在Windows底下有所谓的『快捷方式』。同样的,你可以将 linux下的连结档简单的视为一个文件或目录的快捷方式。 至于socket与FIFO文件比较难理解,因为这两个咚咚与进程(process)比较有关系,这个等到未来你了解process之后,再回来查阅吧!此外, 你也可以透过man fifo及man socket来查阅系统上的说明!
Linux文件扩展名
基本上,Linux的文件是没有所谓的『扩展名』的,我们刚刚就谈过,一个Linux文件能不能被执行,与他的第一栏的十个属性有关,与档名根本一点关系也没有。这个观念跟Windows的情况是不相同的!在Windows底下, 能被执行的文件扩展名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行!
不过,可以被执行跟可以执行成功是不一样的~举例来说,在root家目录下的install.log 是一个纯文本档,如果经由修改权限成为-rwxrwxrwx 后,这个文件能够真的执行成功吗? 当然不行~因为他的内容根本就没有可以执行的数据。所以说,这个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文件系统时,针对文件的档名长度限制为:单一文件或目录的最大容许文件名为 255 个字符;
- 包含完整路径名称及目录 (/) 之完整档名为 4096 个字符。
是相当长的档名喔!我们希望Linux的文件名可以一看就知道该文件在干嘛的, 所以档名通常是很长很长!其实可以透过[tab]按键来确认文件的文件名的!
Linux文件名的限制
由于Linux在文字接口下的一些指令操作关系,一般来说,你在设定Linux底下的文件名时,最好可以避免一些特殊字符比较好!例如底下这些:
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
因为这些符号在文字接口下是有特殊意义的!另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名啊!
参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php
【Linux】文件种类与扩展名的更多相关文章
- linux文件种类及其扩展名
文件种类 普通文件(ls -al出来第一列为-) 纯文本文件(ASCII):linux系统中最多的一种文件类型,可以使用cat直接读取: 二进制文件(binary):linux下面的可执行文件: 数据 ...
- Linux文件种类与扩展名
一.文件种类 1)普通文件:ls -al第一个字符为[-]的 纯文本文件(ASCII) 二进制文件(binary):Linux中的可执行文件 数据格式文件(data):特定格式的文件,如:Linux登 ...
- 运维系列之二 Linux文件种类和扩展名
一.文件种类 1.普通文件 用ls查看文件属性时,显示的是[-] 2.目录文件(directory) 文件属性第一个为[d] 3.连接文件(link) 类似于win下的快捷方式,文件第一个属性为[l] ...
- NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理
Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内 ...
- linux的文件种类与扩展名
一.文件种类: 1.普通文件(regular file)第一个字符为[ - ] 包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内容为我们人类可以直接读到的 ...
- 每天一个linux命令(24):Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
- Linux档案种类与扩展名(2013.09.03)
档案种类: 正规档案(regular file ): 第一个字符为 [ -],例如 [-rwxrwxrwx ].另外,依照档案的内容,又大略可以分为: 纯文本档(ASCII) 二 ...
- 每天一个linux命令(24)--Linux文件类型与扩展名
linux 文件类型和Linux 文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如 file.txt file.tar.gz.这些文件虽然要用不同的程序来打开,但放在Lin ...
随机推荐
- 树状数组(Binary Indexed Tree) 总结
1.“树状数组”数据结构的一种应用 对含有n个元素的数组(a[1],...,a[k],...,a[n]): (1)求出第i个到第j个元素的和,sum=a[i]+...+a[j]. 进行j-i+1次加法 ...
- IOS 实现界面本地化(国际化)
在制作应用程序的时候,可以使用本地化功能,将应用程序的内容翻译成多种语言,在不同的区域显示不同的语言.下面就通过简体中文本地化设置来讲解一下本地化的简单使用. 一.让应用程序支持中文语言环境 选择需要 ...
- tp 生成静态页
$this->fetch()返回的是html 可以直接写入到HTML文件内生成静态页
- Dijkstra(迪杰斯特拉)算法求解最短路径
过程 首先需要记录每个点到原点的距离,这个距离会在每一轮遍历的过程中刷新.每一个节点到原点的最短路径是其上一个节点(前驱节点)到原点的最短路径加上前驱节点到该节点的距离.以这个原则,经过N轮计算就能得 ...
- (转)AssetBundle系列——游戏资源打包(二)
转自:http://www.cnblogs.com/sifenkesi/p/3557290.html 本篇接着上一篇.上篇中说到的4步的代码分别如下所示: (1)将资源打包成assetbundle,并 ...
- 微信小程序开发:设置消息推送
开发设置中,启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 不过照着说明去操作,即使按照最简单的明文方式去设置,还是提示Token验证失败.仔 ...
- php实现支付宝授权登录
第一步: 登录到蚂蚁金服开放平台https://open.alipay.com/platform/home.htm,前提是有商户号.创建应用之后,然后到开发者中心开通对应功能.如图: 第二步: 到应用 ...
- Python访问MySQL数据库
#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认1 ...
- 持续集成之路 —— Mock对象引起的测试失败
今天遇到了一个很奇怪的问题,纠结了好久.在和同事念叨这个问题时,突然想到了问题所在. 问题现象: 在一个Service的单元测试类中有八个测试用例,单独运行时都可以正常通过.可是一旦一起运行时,总是会 ...
- PHP高级教程-文件
PHP 文件处理 fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来 ...