目录是用于包含文件夹和文件的容器。它以分层方式组织文件和文件夹。
目录有几种逻辑结构,下面给出了这些结构。
- 单级目录 –
单级目录是最简单的目录结构。其中,所有文件都包含在同一目录中,便于支持和理解。但是,当文件数量增加或系统具有多个用户时,单级目录具有显着限制。由于所有文件都在同一目录中,因此它们必须具有唯一的名称。如果两个用户调用他们的数据集测试,则违反了唯一名称规则。
优点:
- 由于它是单个目录,所以它的实现很容易。
- 如果文件较小,搜索会变得更快。
- 在这样的目录结构中,文件的创建、搜索、删除、更新等操作都非常容易。
缺点:
- 由于两个文件不能具有相同的名称,因此可能会发生名称冲突。
- 如果目录很大,搜索将变得很耗时。
- 这不能将相同类型的文件组合在一起。
- 两级目录——
正如我们所见,单一级别的目录经常会导致不同用户之间文件名的混淆。这个问题的解决方案是为每个用户创建一个单独的目录。在两级目录结构中,每个用户都有自己的用户文件目录(UFD) 。 UFD 具有相似的结构,但每个 UFD 仅列出单个用户的文件。每当新用户 id=s 登录时,都会搜索系统的主文件目录 (MFD) 。MFD 由用户名或帐号索引,每个条目都指向该用户的 UFD。
优点:
- 我们可以提供完整路径,如 /User-name/directory-name/。
- 不同的用户可以拥有相同的目录和文件名。
- 由于路径名和用户分组,文件搜索变得更容易。
缺点:
- 不允许用户与其他用户共享文件。
- 尽管如此,它的可扩展性不是很好,相同类型的两个文件不能在同一个用户中组合在一起。
- 树状目录——
一旦我们将两级目录看作高度为 2 的树,自然的概括就是将目录结构扩展为任意高度的树。
这种概括允许用户创建他们自己的子目录并相应地组织他们的文件。
树结构是最常见的目录结构。树有一个根目录,系统中的每个文件都有一个唯一的路径。
优点:
- 非常通用,因为可以给出完整的路径名。
- 可扩展性很强,名字冲突的概率更小。
- 搜索变得非常容易,我们既可以使用绝对路径,也可以使用相对路径。
缺点:
- 每个文件都不适合分层模型,文件可能会保存到多个目录中。
- 我们不能共享文件。
- 这是低效的,因为访问一个文件可能会在多个目录下进行。
- 无环图目录——
无环图是没有环的图,允许我们共享子目录和文件。相同的文件或子目录可能位于两个不同的目录中。它是树结构目录的自然概括。它用于两个程序员在共同项目上工作并且他们需要访问文件的情况。相关文件存储在一个子目录中,将它们与其他项目和其他程序员的文件分开,因为他们正在处理一个联合项目,因此他们希望子目录位于他们自己的目录中。应共享公共子目录。所以这里我们使用非循环目录。
需要注意的是,共享文件与复制文件不同。如果任何程序员在子目录中进行了一些更改,它将反映在两个子目录中。
优点:
- 我们可以共享文件。
- 由于不同的路径,搜索很容易。
缺点:
- 我们通过链接共享文件,以防删除它可能会造成问题,
- 如果链接是软链接,那么在删除文件后,我们会留下一个悬空指针。
- 在硬链接的情况下,要删除文件,我们必须删除与其关联的所有引用。
- 一般图形目录结构 –
在一般的图形目录结构中,在一个目录结构中允许循环,其中可以从多个父目录派生多个目录。
这种目录结构的主要问题是计算文件和目录占用的总大小或空间。
优点:
- 它允许循环。
- 它比其他目录结构更灵活。
缺点:
- 它比其他人更昂贵。
- 它需要垃圾收集。