在 Bash 中获取绝对路径
在这篇 Bash 文章中,我们将学习在 Linux 中获取绝对路径的不同方法。 我们还将学习一些不同的 Linux 命令来获取文件的绝对路径。
在开始之前,我们需要了解Linux操作系统中绝对路径和相对路径的基本概念。
如何在 Bash 中获取绝对路径
操作系统的构建块是文件和文件夹。 作为 Linux 用户,我们操作多个文件和目录操作。
查找文件的完整路径就是这样一个过程。 文件的完整路径也称为其绝对路径或规范路径。
用于查找文件或文件夹的地址称为路径。 绝对路径是一个完整的地址或位置,允许我们从任何位置检索所需的文件。
同时,建立一个关于活动工作目录的相对路径。
路径是对目录或文件的引用。 在 Linux 中,有两种路径:绝对路径和相对路径。
当前工作目录决定了相对路径。 另一方面,绝对路径是文件或目录的完整路径。
Bash 中有几种方法可以获取脚本的完整地址。 我们可以使用 realpath、readlink,甚至编写我们的小自定义脚本。
使用相对地址使得获取整个地址变得非常简单。
整个路径是从根目录明确提供的。 /
是一个简单的方法来知道哪个是哪个。
相对路径不以 /
(根文件夹) 开头。 本文将解释如何在 Bash 中查找脚本的绝对路径。
本文将介绍多种确定文件或文件夹完整路径的方法。
Linux中文件的根目录
文件系统的最顶层目录是 Linux 中的 Root Directory 或 Absolute Directory。 根目录用斜杠 / 表示。
我们可以使用以斜杠 /
开头的完整路径来描述文件系统中任何文件或目录的位置。
这个完整路径称为绝对路径,这意味着它告诉必须从文件系统的根或绝对开头开始执行的每个步骤。
使用 cd 命令
Linux 操作系统中的 cd(更改目录)命令用于更改当前工作目录。
$ cd /tmp
使用 mkdir 命令
然后,我们使用 mkdir 命令,后跟您要为新目录指定的名称。
$ mkdir -p dir11/dir12/dir13/dir14/dir15
使用 touch 命令创建目录
创建一个或多个新目录后,我们将使用 touch 命令创建、更改或修改我们的文件。
示例代码:
$ touch dir11/dir12/file12.txt
$ touch dir11/dir12/dir13/dir14/file14.txt
$ touch dir11/dir12/dir13/dir14/dir15/file15.txt
代码的输出:
$ tree /tmp/dir11/
/tmp/dir11/
└── dir12
├── dir13
│ └── dir14
│ ├── dir15
│ │ └── file15.txt
│ └── file14.txt
└── file12.txt
在上面的示例中,我们创建了 4 个目录和 3 个文件。 我们的绝对目录是 dir11/dir12/dir13/dir14/dir15/file15.txt。
Linux 中文件的相对路径
绝对路径很容易理解,但使用起来也不方便,尤其是在处理深度嵌套的目录时。
这就是相对路径派上用场的地方。 而且,看上面的代码,我们的相对目录路径是dir13/file12.txt。
在 Linux 中使用 readlink 命令获取绝对路径
readlink
命令可用于获取文件的完整地址。 readlink 通常用于捕获符号链接或规范文件的路径。
但是,readlink
也可以在给定相对路径的情况下计算绝对路径。 在任何情况下,您都必须将标志附加到阅读链接。
在这种情况下,最常使用 f 标志。
readlink
命令返回规范文件名列表。 要查找文件的完整路径,我们可以使用此命令的 -f 参数。
这些是目录,这些目录中有文件。 我们可以获得我们需要的任何文件的绝对路径。
示例代码:
$ cd /tmp/dir11/dir12/dir13/dir14/dir15/
我们将写入我们想要获取路径的文件名。
$ readlink -f file15.txt
使用带有文件名的 readlink -f
后,我们得到了文件的确切路径,这里是:
/tmp/dir1/dir2/dir3/dir4/dir5/file5.txt
正如我们在代码的输出中看到的,我们得到了我们想要的文件的绝对路径。
在 Linux 中使用 realpath 命令获取绝对路径
作为替代方案,我们可以使用 realpath 命令在 Linux 中获取文件的绝对路径。
示例代码:
$ cd /tmp/dir11/dir12/dir13/dir14/
$ realpath file14.txt
这是文件 file14.txt 的路径。
/tmp/dir1/dir2/dir3/dir4/file4.txt
正如我们所看到的,使用 realpath 命令,我们可以在 Linux 中获得所需的文件绝对路径。
在 Linux 中使用 find 命令获取绝对路径
我们可以使用 find 命令找到目录的结构或层次结构。 在 Linux 中,我们可以使用 find 命令来打印文件的绝对路径或位置。
我们将使用下面的代码找到 file14.txt 的绝对路径。
$ cd /tmp/dir11/
$ find $PWD -type f -name file14.txt
而文件file14.txt的绝对路径是:
/tmp/dir11/dir12/dir13/dir14/file14.txt
正如我们在上面的代码输出中看到的,我们在终端中使用 find 命令获得了我们想要的文件的绝对路径。
我们希望您发现本文有助于理解如何在 Linux 操作系统中获取任何文件的绝对路径。
相关文章
Bash Nohup 与 & 的区别
发布时间:2023/06/09 浏览次数:137 分类:操作系统
-
这篇简短的文章介绍了通过 Bash 在后台运行 Linux 进程的 nohup 命令和 & 控制运算符。 此外,我们将进一步研究 nohup 和 & 之间的主要区别。在后台运行 Linux 进程
在 Bash 中重命名文件
发布时间:2023/06/09 浏览次数:50 分类:操作系统
-
在本文中,我们将介绍一种方法,通过它您可以轻松地重命名目录中的所有文件。 此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中使用 mv 命令重命名文件
在另一个 Bash 脚本中包含脚本文件
发布时间:2023/06/09 浏览次数:79 分类:操作系统
-
本文讨论了将一个 Bash 脚本文件包含到另一个脚本文件中的不同方法。在 Bash 脚本中包含文件 在 Bash 中包含或重用脚本非常简单。
使用 Bash 将文件读入数组
发布时间:2023/05/31 浏览次数:81 分类:操作系统
-
本篇文章介绍了一些使用 Bash 从文件中读取行并将其加载到数组中的方法。首先,我们将看到 readarray 方法。 之后,我们将研究一种更通用的将文件读入 Bash 数组的方法。
在 Bash 中从文件中删除行
发布时间:2023/05/31 浏览次数:168 分类:操作系统
-
在 Bash 脚本中,有几种方法可以从文件中删除一行。 本文将讨论从文件中删除不必要行的不同方法。使用 tail 删除文本文件的一行
在 Bash 中查找文件大小
发布时间:2023/05/31 浏览次数:109 分类:操作系统
-
在 Bash 脚本中,有几种方法可以找到文件的大小。 本文将展示如何通过 Bash 查找文件的大小。我们将在这里讨论三种不同的方法,您可以根据自己的需要选择最合适的一种。
在 Bash 中删除空行
发布时间:2023/05/31 浏览次数:113 分类:操作系统
-
使用文件时,您可能需要在显示文件之前从文件中删除空行。 在 Bash Script 中,有几种方法可以从文件中删除空行。在 Bash 中删除空行的文件
在 Bash 中递归查找文件
发布时间:2023/05/31 浏览次数:197 分类:操作系统
-
这篇文章是关于 Bash 中的 find 命令的。 本文将讨论在 Bash 中使用 find 命令查找特定类型文件的方法。在 Bash 中使用 find 命令递归查找文件 用于导航文件层次结构的命令行工具是 Linux 中的 find