shell 目录和文件夹有什么区别?

57hvy0tb  于 7个月前  发布在  Shell
关注(0)|答案(8)|浏览(84)

大多数人交替使用术语“文件夹”和“目录”。从程序员的Angular 来看,是否有区别,如果有,区别是什么?它取决于操作系统,还是有广泛的共识?
这篇文章在 English UI Terminology:Directory,or Folder? 下的文章至少表明了两者之间的区别。

oyjwcjzk

oyjwcjzk1#

查看维基百科上的“文件夹隐喻”部分。它指出:
目录是一个文件系统概念,与用来表示它的图形用户界面隐喻之间存在差异例如,Microsoft Windows使用特殊文件夹的概念来帮助以相当一致的方式向用户呈现计算机的内容,这使用户不必处理绝对目录路径,绝对目录路径在Windows的版本之间可能不同,在个别设施之间...
如果一个人是指一个文件的容器,术语文件夹是更合适的。术语目录是指一个文件文件和文件夹的结构化列表存储在计算机上的方式。区别可能是由于一个目录的访问方式;在Unix系统上,当在命令行控制台中查看时,/usr/bin/通常被称为目录,但是如果通过图形文件管理器访问,用户有时可以将其称为文件夹。

kpbpu008

kpbpu0082#

文件夹不一定是磁盘上的物理目录。例如,它可以是Windows中的打印机文件夹或控制面板文件夹。
Raymond Chen explains:
Windows 95引入了Windows资源管理器和沿着的术语文件夹。文件夹和目录之间的关系是什么?
有些人认为Windows 95将目录重命名为文件夹,但实际上不止如此。
Windows资源管理器允许您查看文件夹,这些文件夹是 shell 命名空间中的容器。目录是一种类型的文件夹,即对应于文件系统位置的文件夹。还有其他类型的文件夹,如控制面板或网络邻居或目录。这些其他类型的文件夹表示 shell 命名空间中与文件不对应的对象。在常见用法中,术语虚拟文件夹已经被应用于指不是目录的文件夹。换句话说,我们有这个欧拉图:
(虚拟文件夹=目录-目录)
一般来说,操作shell命名空间的代码应该操作文件夹和项目,而不是目录和文件,这样就不会将自己绑定到特定的存储介质上。例如,将自己限制为文件的代码将无法导航到Zip文件,因为Zip文件的内容以虚拟文件夹的形式公开。

nzkunb0c

nzkunb0c3#

*目录是一个文件系统概念,在GUI中,目录表示为Folder

    • 示例1:* Unix系统中,/usr/bin在命令行控制台中查看时通常被称为目录路径,但如果通过图形文件管理器访问,用户有时可能会将其称为文件夹。
    • 示例2*:Windows同时使用Directory(在mkdircd等命令中)和Folder(在GUI中)。
      目录:名称目录表示类似于电话簿:


的数据

文件夹:文件夹的名称,类似于办公室中的文件夹:



类比:

  • 文件夹就像一个房间。
  • 一个目录就像一个酒店管理员谁知道所有的房间。

如果你想要一个特定的文件夹,你可以使用目录。如果你想要一个特定的房间,你可以问酒店管理员。Source

j9per5c4

j9per5c44#

引用Álvaro G. Vicario的话:
大多数时候它们是可互换的术语。目录是自文件系统早期以来使用的经典术语,而文件夹是一种友好的名称,可能对Windows用户来说听起来更熟悉。
主要区别是文件夹是一个逻辑概念,不一定Map到物理目录。目录是文件系统对象。文件夹是GUI对象。Wikipedia explains it this way
名称文件夹(name folder)是一个类似于办公室中使用的文件夹的名称,最初由Apple丽莎使用,几乎在所有现代操作系统的桌面环境中使用。
严格地说,目录是一个文件系统概念,与用于表示它的图形用户界面隐喻之间存在差异例如,Microsoft Windows使用特殊文件夹的概念来帮助以相当一致的方式向用户呈现计算机的内容,这使用户不必处理绝对目录路径,这在不同版本的Windows之间以及不同的安装之间可能会有所不同。
如果一个人是指一个文件的容器,术语文件夹是更合适的。术语目录是指一个结构化的文件文件和文件夹的列表存储在计算机上的方式。它相当于一个电话簿,其中包含名称,号码和地址的列表,而不包含实际的文件本身。

wpx232ag

wpx232ag5#

我以前不知道这两个词在英语中的区别,即使在Windows注册表编辑器中,我也可以在HKEY_CLASSES_ROOT下找到两个子项FolderDirectory
如果我只在HKEY_CLASSES_ROOT\Folder\shell下创建一个节点,我发现它同时出现在虚拟文件夹(又名system directory)(如Recycle Bin)和文件系统目录(如C:\Windows)的上下文菜单中。
如果我只在HKEY_CLASSES_ROOT\Directory\shell下创建一个节点,它只会出现在文件系统目录的上下文菜单中,就像C:\Windows一样,而不是一个虚拟文件夹。所以,就像@ Antony W说的,在Windows中,文件夹=虚拟文件夹+文件系统目录。

dhxwm5r4

dhxwm5r46#

文件资源管理器中显示的文件夹名称(GUI以前称为Windows资源管理器)不一定与它们所代表的目录相同。考虑这样一种情况,您试图以编程方式打开一个特定的文件夹,大容量存储器上的普通目录,不是虚拟存储。假设这是由用户根据文件资源管理器中显示的名称指定的。此名称可能已被替代名称中的信息覆盖数据流(ADS)的目录中,并且您的程序将不会通过其真正的路径名引用该文件。
在我遇到的两个示例中,我的应用无法打开用户指定的路径名。其中一个示例与OneDrive相关;我不记得另一个示例的完整情况。无论如何,显示名称存储在名为ms-properties:$DATA的ADS中。
您可以使用CMD.EXE来列出ADS(使用NTFS/R)。使用“文件资源管理器”中的“属性”菜单项重命名此类文件夹会更改此ADS的内容,并且在“文件资源管理器”中显示给最终用户的名称就是他或她键入的名称。但此过程不会重命名目录。

bis0qfac

bis0qfac7#

文件夹用于对项目进行分组。
目录有索引,用于查找特定的项目。

vfhzx4xs

vfhzx4xs8#

您的链接基本上描述了技术基础上的不同之处。大多数时候,人们可以互换使用它们,他们选择的主要是基于他们来自的环境。
除非你正在为一个需要修改文件的应用程序进行跨平台开发,否则你不需要知道它们之间的区别。一旦你准备使用几种不同的文件系统类型,你就应该知道它们之间的区别。
不要指望人们知道什么时候该用哪个术语,我认为这些术语是可以互换的,因为知道它们之间差异的人太少了。

相关问题