在 Bash 中查找当前文件夹名称
通过 Bash 脚本查找目录非常容易。 但是找到您现在所在的确切目录文件夹名称有点复杂。
本文将介绍三种从本文目录中查找文件夹名称的方法。 此外,我们将看到必要的示例和解释,以使主题更容易理解。
在 Bash 中查找当前文件夹名称
为此,我们将使用一个特殊的关键字:PWD。 Bash 中的这个内置关键字用于查找当前工作目录。
在下面的示例中,我们将找到我们现在所在的文件夹名称。 我们示例的代码如下所示。
current_dir=${PWD##*/}
echo "$current_dir"
以上是完成任务的最简单方法。 但是我们的下一个例子有点复杂。
我们将使用下面的示例找到文件夹名称。
Current_Dir=${PWD##*/}
Current_Dir=${Current_Dir:-/}
printf '%s\n' "${PWD##*/}"
printf '%q\n' "${PWD##*/}"
在上面的示例中,我们使用 Current_Dir=${PWD##*/}
行分配一个变量,并通过 Current_Dir=${Current_Dir:-/}
行我们更正了 PWD=/
的情况。
之后,您可以使用接下来两行中的任何一行。 这两行都将打印到标准输出。
但是第一行比 echo 对于一些不寻常的名称更健壮,其中第二行被引用用作 shell 输入,并且它对于使隐藏字符可读也很有用。 运行上面的脚本后,你只会得到当前目录的文件夹名称。
我们也可以通过下面的示例执行类似的任务。 在这里,我们将整个目录放在一个变量中。
我们下一个示例的代码如下所示。
DirectoryStr=/path/to/somewhere//
shopt -s extglob
CurrentDir=${DirectoryStr%%+(/)}
CurrentDir=${CurrentDir##*/}
CurrentDir=${CurrentDir:-/}
printf '%s\n' "$CurrentDir"
让我们逐个解释这个例子。
- 在第一行,我们创建一个变量并将目录路径作为字符串分配给它。
- 然后,通过 shopt -s extglob 行,我们启用了 +(...) glob 语法。
-
通过
CurrentDir=${DirectoryStr%%+(/)}
这行,无论字符串中存在多少个尾部斜杠,我们都对字符串进行了修剪。 -
通过
CurrentDir=${CurrentDir##*/}
这行,我们删除了最后一个 / 之前的所有内容。 -
我们刚刚通过
CurrentDir=${CurrentDir:-/}
行更正了目录大小写。 - 最后,我们刚刚打印了目录文件夹。
本文中使用的所有代码都是用 Bash 编写的。 它只会在 Linux Shell 环境中工作。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。