文件操作

来源:互联网 发布:python安装包64位下载 编辑:程序博客网 时间:2024/06/06 03:48

名词解释


文件:数据就是0和1的序列。这样的一个序列可以存储在内存中,但内存中的数据会随着关机而消失。为了将数据长久保存,我们把数据存储在光盘或者硬盘中。根据我们的需要,我们通常会将数据分开保存到文件这样一个个的小单位中(所谓的小,是相对于所有的数据而言)。

文件系统(file system):文件在逻辑上组织形式,它以一种更加清晰的方式来存放各个文件,通常为树形(Tree)结构。

路径:绝对路径是从盘符开始的路径;相对路径:从当前路径开始的路径。

文件操作


对文件的操作有:
1. 读取(read):从已经存在的文件中获得数据。
2. 写入(write):向新的文件或者旧的文件写入数据。
3. 运行(execute):如果文件储存的是可执行的二进制码,那么它可以被载入内存,作为一个程序运行。

 对文件的操作应相应的权限,其权限信息保存在文件信息(metadata)中。

文件信息(metadata)


文件自身包含的只有数据。文件名实际上储存在目录文件,除了这些之外,还有操作系统维护的文件附加信息,比如文件类型,文件尺寸,文件权限,文件修改时间,文件读取时间等。
可以用ls命令查询文件信息($ls -l file.txt),得到如下结果:

-rw-r–r– 1 vamei vamei 8445 Sep 8 07:33 file1.txt

含义解释:

  • 最开始的-,它表示文件类型,说明file1.txt是常规文件(如果是目录文件,则应显示d)。

  • 随后有九个字符,为rw-r–r–,它们用于表示文件权限。(其中r:4 w:2 x:1 -:0)
    这九个字符分为三组,rw-, 对应拥有者(owner),r–,对应拥有组(owner group),r–,对应所有其他人(other)。
    回顾Linux开机启动,登录后,我会有一个用户身份和一个组身份, 相当于我的名片。第一组表示,如果我的名片上的用户身份证明我是该文件的拥有者,那么我就可以对该文件有读取(r),写入(w)该文件的权限,但不拥有执行(-,如果拥有执行权限,则为x)该文件的权限。第二组表示,如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员,那么我有从该文件读入的权限。第三组表示,如果我的名片显示我既不是拥有者,也不是拥有组的一员,那么我只有读入的权限。当我想要进行一个读取操作时,Linux会先看我是否是拥有者下文会进一步解释拥有者和拥有组。

  • 1是硬连接(hard link)数目(link count)。
    当文件出现在一个目录文件中时,我们就把文件接入到文件系统中,我们称建立一个到文件的硬连接(hard link)。一个文件允许出现在多个目录中,这样,它就有多个硬链接。当硬连接的数目(link count)降为0时,文件会被Linux删除。所以很多时候,unlink与remove在Linux操作系统中是一个意思。由于软连接(soft link)的广泛使用(soft link不会影响link count,而且可以跨越文件系统),现在较少手动建立硬连接。

    软链接不会影响文件的link count。如果还记得windows系统的快捷方式的话,Linux的软链接(soft link,也叫做symbolic link)就是linux的快捷方式。软链接本质上是一个文件,它的文件类型是symbolic link。在这个文件中,包含有链接指向的文件的绝对路径。当你从这个文件读取数据时,linux会把你导向所指向的文件,然后从那个文件中读取(就好像你双击快捷方式的效果一样)。软链接可以方便的在任何地方建立,并指向任何一个绝对路径。

  • 随后的8445表示文件大小,单位为字节(byte)。

  • Sep 8 07:33表示文件的上一次写入的时间(modification time)。实际上在文件附加信息中还包含有文件的上一次读取时间(access time),没有显示出来。

出处:http://www.cnblogs.com/vamei

0 0