您现在的位置是:首页 >

相对路径与当前目录有关 当前目录详细资料大全

火烧 2021-12-08 07:51:06 1038
当前目录详细资料大全 当一个档案系统含有许多级时,每访问一个档案,都要使用从树根开始直到树叶 数据档案 为止的、包括各中间节点 目录 名的全路径名。这是相当麻烦的事,同时由于一个进程运行时所访问的档案
相对路径与当前目录有关 当前目录详细资料大全

当前目录详细资料大全  

当一个档案系统含有许多级时,每访问一个档案,都要使用从树根开始直到树叶(数据档案)为止的、包括各中间节点(目录)名的全路径名。这是相当麻烦的事,同时由于一个进程运行时所访问的档案大多仅局限于某个范围,因而非常不便。基于这一点,可为每个进程设定一个“当前目录” ,又称为“工作目录” 。进程对各档案的访问都相对于“当前目录”而进行。此时各档案所使用的路径名,只需从当前目录开始,逐级经过中间的目录档案,最后到达要访问的数据档案。当前目录即当前用户或经常正在使用的目录。

基本介绍

中文名:当前目录外文名:Current Directory学科:计算机定义:当前正在使用的目录有关术语:目录领域:档案系统、作业系统 目录介绍,目录结构,单级目录结构,两级目录,多级目录结构,路径名,目录查询技术,线性检索法,Hash 方法,Linux 常用命令,

目录介绍

在计算机或相关设备中,一个“目录”或“资料夹”就是一个装有数字档案系统的虚拟“容器”。在它里面保存著一组档案和其它一些目录(资料夹)。计算机的档案系统可被形象地看作一个档案“橱柜”。在它之中,高等的目录(资料夹)中有“抽屉”,低等的子目录中可能有“抽屉”中的资料夹。一个典型的档案系统可能会包含成千上万个目录(资料夹)。多个档案通过存储在一个目录(资料夹)中,可以达到有组织的存储档案的目的。在一个目录(资料夹)中的另一个目录(资料夹)被称作它的子目录(子资料夹)。这样,这些目录(资料夹)就构成了层次(hierarchy),或树形结构。 有些作业系统中,用户被限制只能访问他们自己的用户资料夹或工程目录,使用户间的活动相隔离。在 Unix 中,目录被看作一类档案。当前目录即当前用户正在使用的目录。使用当前目录的主要目的是为了提高档案的检索速度。

目录结构

目录结构的组织,关系到档案系统的存取速度,也关系到档案的共享性和安全性。因此,组织好档案的目录,是设计好档案系统的重要环节。目前常用的目录结构形式有单级目录、两级目录和多级目录。

单级目录结构

这是最简单的目录结构。在整个档案系统中只建立一张目录表,每个档案占一个目录项,目录项中含档案名称、档案扩展名、档案长度、档案类型、档案物理地址以及其它档案属性。此外,为表明每个目录项是否空闲,又设定了一个状态位。

两级目录

为了克服单级目录所存在的缺点,可以为每一个用户建立一个单独的用户档案目录UFD(User File Directory)。这些档案目录具有相似的结构,它由用户所有档案的档案控制块组成。 此外, 在系统中再建立一个主档案目录 MFD(Master File Directory); 在主档案目录中,每个用户目录档案都占有一个目录项,其目录项中包括用户名和指向该用户目录档案的指针。

多级目录结构

对于大型档案系统,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和档案系统的性能。多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把数据档案称为树叶,其它的目录均作为树的结点。

路径名

在树形目录结构中,从根目录到任何数据档案,都只有一条惟一的通路。在该路径上从树的根(即主目录)开始,把全部目录档案名称与数据档案名称依次地用“/”连线起来,即构成该数据档案的路径名(path name)。系统中的每一个档案都有惟一的路径名。把从 当前目录开始直到数据档案为止所构成的路径名,称为相对路径名(relative path name);而把从树根开始的路径名称为绝对路径名(absolute path name)。

目录查询技术

当用户要访问一个已存在档案时,系统首先利用用户提供的档案名称对目录进行查询,找出该档案的档案控制块或对应索引结点;然后,根据 FCB 或索引结点中所记录的档案物理地址(盘块号),换算出档案在磁碟上的物理位置;最后,再通过磁碟驱动程式,将所需档案读入记忆体。目前对目录进行查询的方式有两种: 线性检索法和 Hash 方法。

线性检索法

线性检索法又称为顺序检索法。在单级目录中,利用用户提供的档案名称,用顺序查找法直接从档案目录中找到指名档案的目录项。在树型目录中,用户提供的档案名称是由多个档案分量名组成的路径名,此时须对多级目录进行查找。假定用户给定的档案路径名是/usr/ast/mbox,则查找/usr/ast/mbox 档案的过程如图 所示。 具体查找过程说明如下: 首先,系统应先读入第一个档案分量名 usr,用它与根目录档案(或当前目录档案)中各目录项中的档案名称顺序地进行比较,从中找出匹配者,并得到匹配项的索引结点号 6,再从6 号索引结点中得知 usr 目录档案放在 132 号盘块中,将该盘块内容读入记忆体。 接着,系统再将路径名中的第二个档案分量名 ast 读入,用它与放在 132 号盘块中的第二级目录档案中各目录项的档案名称顺序进行比较,又找到匹配项,从中得到 ast 的目录档案放在26 号索引结点中, 再从26号索引结点中得知/usr/ast是存放在496号盘块中, 再读入496号盘块。 然后, 系统又将该档案的第三个分量名 mbox 读入, 用它与第三级目录档案/usr/ast 中各目录项中的档案名称进行比较,最后得到/usr/ast/mbox 的索引结点号为 60,即在 60 号索引结点中存放了指定档案的物理地址。目录查询操作到此结束。如果在顺序查找过程中发现有一个档案分量名未能找到,则应停止查找,并返回“档案未找到”信息。

Hash 方法

如果我们建立了一张 Hash 索引档案目录,便可利用Hash 方法进行查询,即系统利用用户提供的档案名称并将它变换为档案目录的索引值,再利用该索引值到目录中去查找,这将显著地提高检索速度。 顺便指出,在现代作业系统中,通常都提供了模式匹配功能,即在档案名称中使用了通配符“*” 、 “?”等。对于使用了通配符的档案名称,系统此时便无法利用 Hash 方法检索目录,因此,这时系统还是需要利用线性查找法查找目录。 在进行档案名称的转换时,有可能把 n 个不同的档案名称转换为相同的 Hash 值,即出现了所谓的“冲突” 。一种处理此“冲突”的有效规则是: (1) 在利用 Hash 法索引查找目录时,如果目录表中相应的目录项是空的,则表示系统中并无指定档案。 (2) 如果目录项中的档案名称与指定档案名称相匹配, 则表示该目录项正是所要寻找的档案所对应的目录项,故而可从中找到该档案所在的物理地址。 (3) 如果在目录表的相应目录项中的档案名称与指定档案名称并不匹配,则表示发生了“冲突” , 此时须将其 Hash 值再加上一个常数(该常数应与目录的长度值互质), 形成新的索引值,再返回到第一步重新开始查找。

Linux 常用命令

命令 1:mkdir 用途:创建目录 实例 1:mkdir do 含义:在当前目录下创建名为 do 的子目录 实例 2:mkdir do/align 含义:在子目录 do 下创建名为 align 的子目录(子目录 do 已经存在) 实例 3:mkdir –p hba/tree 含义:在当前目录下创建名为 hba 的子目录,并在子目录 hba 下创建名为 tree 的子目录 命令 2:rmdir 用途:删除目录 实例 1:rmdir tmp 含义:删除当前目录下名为 tmp 的子目录,该子目录中没有档案和子目录 命令 3:cd 用途:改变目录 实例 1:cd 含义:回到用户主目录,即登录时进入的目录 实例 2:cd do 含义:进入子目录 do 实例 3:cd .. 含义:回到上级目录 实例 4:cd hba/tree 含义:直接进入子目录 hba 下的 tree 子目录 实例 5:cd ../do/align 含义:进入上级目录 do 下的 align 子目录 命令 4:ls 用途:显示档案或目录 实例 1:ls 含义:显示当前目录下子目录和档案名称 实例 2:ls -l 含义:显示当前目录下子目录和档案名称详细信息,包括属性、许可权、大小和创建日期等 命令 5:rm 用途:删除档案或目录 实例 1:rm seq2 含义:删除档案 seq2 实例 2:rm *.txt 含义:删除所有以.txt 结尾的档案 实例 3:rm –r temp/* 含义:删除子目录 temp 下所有子目录和档案,保留该目录 实例 4:rm –r temp 含义:删除子目录 temp 和该目录下所有子目录和档案 命令 6:chmod 用途:改变档案或目录许可权 实例 1:chmod –w ppf1.fas 含义:取消所有用户对 ppf1.fas 的写许可权 实例 2:chmod +w seq1 含义:将当前目录下 seq1 设定为本用户可写,其他用户许可权不变 实例 3:chmod -w keep/ 含义:取消子目录 keep 写许可权,不能在该目录下创建和删除档案或子目录 实例 4:chmod 755 bin/* 含义:将子目录 bin 下所有档案设定为本用户可读可写可执行,其它用户可读可执行  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码