文件路径是以人类可读的方式表示文件或文件夹在计算机系统上的位置。您在互联网上见过文件路径,尽管您可能没有意识到:互联网 URL,尽管像 AOL 和 CompuServe 这样的专有公司进行了古老的战斗,但实际上只是指向其他人计算机上(有时是动态创建的)文件的路径。例如,当您导航到 example.com/index.html 时,您实际上是在查看 HTML 文件 index.html,它可能位于 example.com 服务器上的 var 目录中。您计算机上的文件也有文件路径,本文解释了如何理解它们以及它们为什么重要。
当计算机成为家庭用品时,它们采用了越来越强的与现实世界模型的类比。例如,个人电脑不是账户和目录,而是被称为拥有桌面和文件夹,最终,人们逐渐形成了这样的印象,即计算机是通向现实世界虚拟版本的窗口。这是一个有用的类比,因为每个人都熟悉桌面和文件柜的概念,而很少有人了解数字存储和内存地址。
想象一下,您发明了计算机或操作系统。 您可能会创建一种将常用文件分组在一起的方法,因为人类喜欢分类和组织事物。 由于计算机上的所有文件都在硬盘驱动器上,因此您可能指定的最大容器是驱动器本身; 也就是说,驱动器上的所有文件都在驱动器中。
事实证明,UNIX 的创建者也有同样的直觉,只是他们将这些组织单元称为目录或文件夹。 您计算机驱动器上的所有文件都位于系统的基本(根)目录中。 即使是外部驱动器也被带入此根目录,就像您在组织办公室空间或爱好室时,可能会将重要的相关物品放入一个容器中一样。
Linux 上的文件和文件夹被赋予包含常用组件的名称,例如键盘上的字母、数字和其他字符。 但是,当文件位于文件夹内,或者文件夹位于另一个文件夹内时,/ 字符显示它们之间的关系。 这就是为什么您经常看到以 /usr/bin/python3 或 /etc/os-release 格式列出的文件。 正斜杠表示一个项目存储在它前面的项目内部。
在 POSIX 系统上,每个文件和文件夹都可以表示为路径。 如果我的主目录中的 Pictures 文件夹中有文件 penguin.jpg,并且我的用户名是 seth,那么文件路径可以表示为 /home/seth/Pictures/penguin.jpg。
大多数用户主要与其主目录交互,因此使用波浪号 (~) 字符作为简写。 事实上,这意味着我可以将我的示例企鹅图片表示为 /home/seth/Pictures/penguin.jpg 或 ~/Pictures/penguin.jpg。
熟能生巧
无论您是否考虑该路径是什么,计算机都会使用文件路径。 您不一定有理由必须以路径的方式考虑文件。 但是,文件路径是理解计算机如何工作的一个有用框架的一部分,如果您希望成为开发人员(您需要了解对支持库的路径)、Web 设计师(文件路径确保您将 HTML 指向适当的 CSS)、系统管理员或只是高级用户,那么学习以路径的方式思考文件可能会很有用。
如有疑问,拖放
如果您不习惯将硬盘驱动器的结构视为路径,那么为任意文件构建完整路径可能会很困难。 在 Linux 上,大多数文件管理器要么原生显示(或可以选择)您所在位置的完整文件路径,这有助于每天加强这个概念

opensource.com
如果您正在使用终端,那么了解现代终端(与它们模拟的电传打字机不同)可以通过拖放方式接受文件可能会有所帮助。 例如,当您通过 SSH 将文件复制到服务器时,并且您不确定如何表示文件路径,请尝试将文件从 GUI 文件管理器拖到终端中。 代表文件的 GUI 对象被转换为终端中的文本文件路径

opensource.com
不要浪费时间输入猜测。 只需拖放即可。
Tab 键是您的朋友
在一个以避开三个字母的命令而闻名的系统上,当两个甚至一个字母的命令就可以完成任务时,请放心,经验丰富的 POSIX 用户永远不会输入所有内容。 在 Bash shell 中,Tab 键表示自动完成,并且自动完成永远不会说谎。 例如,要键入示例 penguin.jpg 文件的位置,您可以从
$ ~/Pi
开始,然后按 Tab 键。 只要只有一个以 Pi 开头的项目,文件夹 Pictures 就会为您自动完成。
如果有两个或多个以您尝试自动完成的字母开头的项目,那么 Bash 会显示这些项目是什么。 您手动输入更多内容,直到您达到 shell 可以安全自动完成的唯一字符串。 关于此过程,最好的事情不一定在于它可以节省您的打字时间(尽管这绝对是一个卖点),而在于自动完成永远不会出错。 无论您多么努力地与计算机作斗争以自动完成不存在的东西,最终,您都会发现自动完成比任何人都更了解路径。
假设您在深夜重组时,将 penguin.jpg 从 ~/Pictures 文件夹移动到 ~/Spheniscidae 目录。 您睡着了,醒来后精神焕发,但不记得您已经重组过,因此您尝试使用自动完成在终端中将 ~/Pictures/penguin.jpg 复制到您的 Web 服务器。
无论您多么用力地敲击 Tab 键,Bash 都会拒绝自动完成。 您想要的文件根本不存在于您认为它存在的位置。 当您尝试将网页指向您确定已上传的字体或 CSS 文件,或者当您将编译器指向您 100% 确定已编译的库时,此功能可能会有所帮助。
这不是您奶奶的自动完成功能
如果您喜欢 Bash 的自动完成功能,那么一旦您尝试 Zsh 中的自动完成功能,您就会开始嗤之以鼻。 Z shell 以及 Oh My Zsh 站点,提供了充满特定编程语言和环境插件的动态体验、充满有用反馈的可视主题以及充满激情的 shell 用户社区

如果您是视觉思考者,并且发现大多数终端的显示停滞且麻木,那么 Zsh 很可能会改变您与计算机交互的方式。
多加练习
文件路径在任何系统上都很重要。 您可能是一个视觉思考者,更喜欢将文件视为文字文件夹内的文字文档,但计算机将文件和文件夹视为数据池中的命名标签。 它识别一个数据集合与另一个数据集合的方式是遵循其指定的路径。 如果您了解这些路径,您也可以可视化它们,并且您可以说与您的操作系统相同的语言,从而使文件操作速度更快、更快。
4 条评论