Redian新闻
>
终端基础:Linux 终端中的目录切换 | Linux 中国

终端基础:Linux 终端中的目录切换 | Linux 中国

科技
 
导读:本篇文章作为终端基础教程系列的一部分,介绍如何在 Linux 命令行中,利用绝对路径和相对路径实现目录切换。
本文字数:3466,阅读时长大约:5分钟

https://linux.cn/article-16304-1.html
作者:Abhishek Prakash
译者:ChatGPT

本篇文章作为终端基础教程系列的一部分,介绍如何在 Linux 命令行中,利用绝对路径和相对路径实现目录切换。

Linux 的 cd 命令让你可以轻松切换文件夹(即目录)。只需提供你要切换到的文件夹路径即可。

  1. cd path_to_directory

然而对于 Linux 新人来说,可能会在路径的指定上有所困扰。

首先,让我们解决这个问题。

理解 Linux 中的路径

在 Linux 文件系统中,路径是用来追踪文件位置的信息。所有的路径都从根目录开始,然后向下延伸。

你可以通过下面的方式查看当前所在的位置:

  1. pwd

结果可能是类似于 /home/username 的输出。注意,这里的 username 将会是你自己的用户名。

你可以注意到,路径是由 / 符号和目录名组成的。比如路径 /home/abhishek/scripts, 表示 scripts 是在文件夹 abhishek 之内,而文件夹 abhishek 在 home 文件夹之内。要注意,第一个 '/' 是指根目录(即文件系统的开始处),后面的 '/' 则作为目录的分隔符。

Path in Linux

🖥️ 在终端中键入 ls /,然后按回车。你将会看到根目录下的所有内容,试试看!

接下来,让我们学习两种常见的路径指定方式:绝对路径和相对路径。

绝对路径:这种路径从根开始,然后一直扩展到你需要的位置。如果一个路径是以 / 开头,那就说明它是一个绝对路径。

相对路径:这是相对于你文件系统中当前位置的路径。如果我当前位置在 /home/abhishek,并且我需要去 /home/abhishek/Documents, 我只需要简单地切换到 Documents,而不需要指定整个绝对路径 /home/abhishek/Documents

在我演示这两种路径的区别之前,有必要先熟悉两个特殊的目录标识:

◈ . (单点)表示当前目录。
◈ .. (双点)表示上一级目录,也就是当前目录的母目录。

这里有一张图形化的表示。

Absolute path vs relative path

利用 cd 命令变更目录

在你已对路径概念有所了解之后,我们来了解如何切换目录。

🖥️ 如果你仅键入 cd 并按回车键,无论当前位置在哪,系统都会将你带回主目录。试一试吧。

敲入以下命令,你就能看到主目录里的所有文件夹:

  1. ls

这是我看到的情况:

  1. abhishek@ituxedo:~$ ls
  2. Desktop Downloads Pictures Templates VirtualBoxVMs
  3. Documents Music Public Videos

你的情况可能与此类似,但未必完全一样。

假如你希望跳转到 Documents 文件夹。由于它就在当前目录下,这里使用相对路径会比较方便:

  1. cd Documents

💡 注意,大部分 Linux 发行版预设的终端模拟器会在提示符本身显示出当前所在的位置。因此你不必频繁使用 pwd 指令来确认自己的位置。

Most Linux terminal prompts show the current location

假如你希望切换到位于主目录里的 Templates 文件夹。

你可以使用相对路径 ../Templates.. 会让你返回到上层目录,即 /home/username,然后你就可以进入 Templates 文件夹了)。

但这次我们尝试使用绝对路径。请把下面的 abhishek 替换成你的用户名。

  1. cd /home/abhishek/Templates

此刻你已经在 Templates 文件夹里了。如何前往 Downloads 文件夹呢?这次我们再使用相对路径:

  1. cd ../Downloads

💡 别忘了你还可以使用终端的 tab 键自动补全功能。只需要键入命令或者文件夹名称的前几个字母,然后敲击 tab 键,系统就会尝试自动地补全命令或文件夹名称,或者给你显示出所有可能的选项。

故障解决

在 Linux 终端操作切换目录的过程中,你可能会遇到一些常见的错误。

文件或目录不存在

如果在你尝试切换目录时,出现类似下面的错误信息:

bash: cd: directory_name: No such file or directory

那么你可能在路径或目录名称上犯了误解。这里有几点你需要注意的:

◈ 请确定你输入的目录名中没有拼写错误。
◈ Linux 系统对大小写敏感,因此,Downloads 和 downloads 会被识别为不同的目录。
◈ 你可能未正确指定路径。可能你所在的位置与你预期的不同?或者你遗漏了绝对路径中的开头的 / 字符?

Common examples of "no such file or directory" error

非目录错误

如果你看到像下面这样的错误提示:

bash: cd: filename: Not a directory

这表示你尝试使用 cd 命令对一个文件进行操作,而不是一个目录(文件夹)。很明显,你不能像进入文件夹那样“进入”一个文件,因此会出现这样的错误。

Not a directory error with the cd command

参数过多

这是 Linux 新手常犯的另一个错误:

bash: cd: too many arguments

cd 命令只接受一个参数。也就是说,你只能对命令指定一个目录。

如果你指定了超过一个的参数,或者在路径中误加了空格,你就会看到这个错误。

Too many arguments error in Linux terminal

🏋🏻 如果你输入 cd -,它将会把你带到前一个目录。当你在两个相隔较远的地方切换时非常方便,可以避免再次输入长路径。

特殊目录符号

在结束这个教程之前,我想快速告诉你关于特殊符号 ~。在 Linux 中,~ 是用户主目录的捷径。

如果用户 abhi 运行它,~ 就会代表 /home/abhi,如果用户 prakash 运行,~ 就意味着 /home/prakash

总结一下你在这个基础教程系列中学到的所有特殊目录标识:

< 如显示不全,请左右滑动 >
符号描述
.当前目录
..上级目录
~主目录
-前一个目录

测试你的知识

下面是一些简单的练习,用来测试你刚刚学到的关于路径和 cd 命令的知识。

移动到你的主目录,并使用这个命令创建一个嵌套的目录结构:

  1. mkdir -p sample/dir1/dir2/dir3

然后,一步步来试试这个:

◈ 使用绝对路径或相对路径进入 dir3
◈ 使用相对路径移动到 dir1
◈ 使用你能想象到的最短路径进入 dir2
◈ 使用绝对路径切换到 sample 目录
◈ 返回你的主目录

🔑 想知道你是否全都做对了吗?欢迎分享你的答案。

现在你知道如何切换目录,是不是应该学习一下如何创建它们呢?

我强烈推荐你阅读这篇文章,了解一些关于终端和命令的小技巧。

如果你想了解 Linux 命令行的基础知识,记得关注我们的 Linux 终端基础系列教程的更多章节。


via: https://itsfoss.com/change-directories/

作者:Abhishek Prakash 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Fractal 5:Linux Matrix 消息应用迎来 GTK 4 和 Rust SDK 的升级 | Linux 中国「专题速递」数字人直播带货、传统行业数字化升级、远程协作中的低延时视频、地产物业中的通讯终端Linux 中的 ls 命令使用教程 | Linux 中国Linux 爱好者线下沙龙:LLUG 2023 深圳硬核来袭 | Linux 中国Linux 爱好者线下沙龙:LLUG 2023·西子湖畔相见 | Linux 中国Wave:即使你讨厌命令行,也会喜欢的现代新 Linux 终端 | Linux 中国8.22.23 七夕谈花妖读议《卞和献玉 勃苏哭秦。给共产党最高层的六大建议———资中筠》Linus Torvalds:Linux 内核中的 Rust、AI 和疲劳的维护者 | Linux 中国Linux 爱好者线下沙龙:LLUG 2023·蓉城热辣相聚 | Linux 中国Vojtux:针对视力障碍用户改造 Linux | Linux 中国Linux 黑话解释:Linux 中的 Super 键是什么? | Linux 中国JJ's Moon TreeLinux 爱好者线下沙龙:LLUG 2023 深圳 - 活动预告 | Linux 中国使用 dialog 和 jq 在 Linux 上编写高效终端 TUI | Linux 中国终端基础:在 Linux 中重命名文件和目录 | Linux 中国在 Linux 终端利用 Asciiquarium 打造海底世界 | Linux 中国彭博终端有妙招 | 彭博终端PM <GO>:高效完成投组再平衡(实操视频)Bash 基础知识系列 #9:Bash 中的函数 | Linux 中国媒体基础:打开多模态大模型的新思路【齐风猎作品】侠骨柔情拖油瓶修复 Arch Linux 中的 “target not found” 错误 | Linux 中国10 个在 Linux 终端中生成有趣的 ASCII 字符画的工具 | Linux 中国首款 Linux 游戏本?!Tuxedo 推出 Linux 游戏本 Sirius 16学习好的基础:“三好”Linux 爱好者线下沙龙:LLUG 2023·北京,相聚在这个冬日 | Linux 中国修复 Arch Linux 中的 “Bash: man command not found” 错误 | Linux 中国你好,我是筚(bì)篥( lì)!那个时代里的童年FreeDOS 基础:从 A 到 Z | Linux 中国Linux 爱好者线下沙龙:LLUG 2023·杭州八方城见 | Linux 中国第一款纯 64 位架构!Intel 一代神U彻底凉凉:Linux 停止支持AMD 好尴尬:Linux 游戏性能远胜 Win11 31%Linux 爱好者线下沙龙:LLUG 2023·相聚成都 | Linux 中国彭博终端有妙招 | 彭博终端IN <GO>:覆盖各大资产类别,助您把握机遇!(实操视频)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。