跳到主要内容

07、Linux 教程:文件属性与目录配置

文件属性与目录配置

文件类型

一般的文件分为三类,一是纯文本文件,二是二进制文件,三是数据格式文件,数据格式文件是特定程序产生的特定格式的文件,如/var/log/wtmp,它能用last读出,但cat会读出乱码。

文件类型:一般文件-、目录d、链接文件l、区块设备档(硬盘与软盘,符号为b)、字符设备文件(键盘、鼠标,符号为c)、资料接口文件(用于网上的数据承接,符号为s)、数据输送文件(FIFO队列,pipe,符号为p)。

FHS

FHS(filesystem hierarchy standard)是一个目录配置的标准,很多开发商都应该遵循这个标准,以达到使用者清楚各目录的作用的效果。FHS根据文件系统使用的频繁与否、是否允许使用者随意变动,将目录定义为四种交互作用的形态:

 

这四种类型的解释:

 

常用目录

1、 根目录/:;

FHS要求,根目录不要放在非常大的分区槽内,安装软件尽量不要与根目录放在一个分区槽内,因为根目录与开机、还原、系统修复等动作有关,分区内容越多出错的可能越大。

2、 /usr目录:;

usr(unix software resource),它其中的数据属于可分享不可变动的,FHS建议所有开发者将他们的数据合理的放在该目录的各次目录下,该目录一般是安装时会占用较大磁盘容量的目录。

 

3、 /var目录:;

它主要针对经常变动的文件,包括缓存、运行文件、数据库文件等,随着系统运行,该目录会逐渐占据较大的硬盘空间:

 

CentOS7在目录设置上与之前有了较大的不同,将许多在根目录下的目录中的数据转移到了/usr中,然后进行廉洁设定:

 

路径与目录

相对路径的表示方法,一个点.代表当前目录,如:./command;两个点..代表上一层目录,如:../var/log。一般进行shell编程时要使用绝对路径,因为文件的执行位置是不确定的。

特殊的目录:

 

文档名和目录名:

 

文件时间参数

文件的三种时间参数,分别是modification time内容更新时间,status time状态更新时间,access time读取时间,分别使用ll、ls -l --time=atime 文件ls -l -time=ctime 文件查看,其中最常用的就是mtime内容更新时间。执行touch命令除了可以创建文件外,还能将已有的文件的三种时间都统一成现在,有时因为开机程序问题,文件的时间可能会出现重大偏差,此时就需要执行此命令,加一些选项touch可以随意修改这三种时间。值得注意的是,复制一个文件时,ctime不能被复制,因为它记录最近状态改变的时间,总是记录复制的时刻。

各目录作用

linux各目录的作用:

 

 

 

编码问题

有时打开文件中文会出现乱码,这是由于文件本身的编码方式和开启终端机的软件的编码方式不同导致的,如果文件编码方式是big5,而终端采用utf8就会不能兼容,此时一般要调整终端的编码方式来解决。

在dos中的文件可能在linux中无法正确读取和执行,这是对于两个系统而言,一些特殊格式的字符表达方式不同的原因,此时要用dos2unix和unix2dos来转换即可。

一个文件的编码也可以进行转换,如将/tmp/vi.big5转成utf8编码:

iconv -f big5 -t utf8 vi.big5 -o vi.utf8,-o选项意味着保留原来的文件,后跟新文件。

将正体中文utf8转换成简体中文utf8:

iconv -f utf8 -t big5 vi.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8