Linux 终端中的目录切换

简介: Linux 终端中的目录切换

11375a4bf612a59d55f986405a8b2455.jpg

前言

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

cd path_to_directory

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

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

理解 Linux 中的路径

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

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

pwd

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

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

Path in Linux

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

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

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

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

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

. (单点)表示当前目录。

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

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

Absolute path vs relative path

利用 cd 命令变更目录

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

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

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

ls

这是我看到的情况:

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

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

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

cd Documents

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

Most Linux terminal prompts show the current location

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

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

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

cd /home/abhishek/Templates

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

cd ../Downloads

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

故障解决

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

文件或目录不存在

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

bash: cd: directory_name: No such file or directory

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

◈ 请确定你输入的目录名中没有拼写错误。

◈ Linux 系统对大小写敏感,因此,Downloadsdownloads 会被识别为不同的目录。

◈ 你可能未正确指定路径。可能你所在的位置与你预期的不同?或者你遗漏了绝对路径中的开头的 / 字符?

非目录错误

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

bash: cd: filename: Not a directory

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

参数过多

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

bash: cd: too many arguments

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

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

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

特殊目录符号

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

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

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

< 如显示不全,请左右滑动 >

符号 描述
. 当前目录
.. 上级目录
~ 主目录
- 前一个目录

测试你的知识

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

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

mkdir -p sample/dir1/dir2/dir3

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

◈ 使用绝对路径或相对路径进入 dir3

◈ 使用相对路径移动到 dir1

◈ 使用你能想象到的最短路径进入 dir2

◈ 使用绝对路径切换到 sample 目录

◈ 返回你的主目录

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

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

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

相关文章
|
7天前
|
存储 Linux
Linux 目录名称
Linux系统目录结构简介:根目录(/)下包含各类功能目录,如/bin存放用户命令,/etc存储配置文件,/home为用户主目录,/var记录日志等可变数据,/usr存放用户工具,/tmp用于临时文件。各目录分工明确,保障系统有序运行。(238字)
76 5
|
5月前
|
Linux 网络安全 iOS开发
SecureCRT & SecureFX 9.6.3 for macOS, Linux, Windows - 跨平台的多协议终端仿真和文件传输
SecureCRT & SecureFX 9.6.3 for macOS, Linux, Windows - 跨平台的多协议终端仿真和文件传输
1330 4
SecureCRT & SecureFX 9.6.3 for macOS, Linux, Windows - 跨平台的多协议终端仿真和文件传输
|
7月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1530 77
|
6月前
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
254 24
|
7月前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
153 19
|
8月前
|
存储 Linux
linux中的目录操作函数
本文详细介绍了Linux系统编程中常用的目录操作函数,包括创建目录、删除目录、读取目录内容、遍历目录树以及获取和修改目录属性。这些函数是进行文件系统操作的基础,通过示例代码展示了其具体用法。希望本文能帮助您更好地理解和应用这些目录操作函数,提高系统编程的效率和能力。
319 26
|
7月前
|
Linux
Linux目录删除指南:彻底解决“Is a directory”错误
在 Linux 系统中遇到 `cannot remove &#39;xxx&#39;: Is a directory` 错误,是因为删除目录时未使用正确参数。解决方法包括:1) 使用 `rmdir` 删除空目录或 `rm -r` 删除非空目录;2) 检查并调整目录权限(如通过 `sudo` 提权);3) 处理特殊场景,例如文件属性异常、特殊字符或进程占用;4) 替代方法如 `find -delete` 或文件系统修复。操作前建议备份数据,并启用防误删功能(如 `alias rm=&#39;rm -i&#39;`)。掌握 `rm` 和 `rmdir` 的区别是关键。
555 1
|
8月前
|
Linux
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
88 14
|
10月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
1023 8
|
11月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
826 3