文件路径是文件或文件夹在计算机系统上的位置的可读表示形式。您已经见过文件路径,尽管您可能没有意识到,互联网上的 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 条评论