目录中的点怎么打_目录的点号怎么打出来


本文将详细介绍三个内容:

  • 使用 dirname 命令提取路径名的目录部分
  • 使用 basename 命令提取路径名的文件名部分
  • 利用 bash 的参数扩展获取文件名的后缀名

在 Linux 系统中,我们可以通过 dirname 命令来获取路径名的目录部分。

例如,当执行 dirname /path/to/file.txt 命令时,该命令将去除最后一个 '/' 后面的所有字符,并返回 '/path/to/',即文件所在目录的路径。

如果给定的路径名不包含 '/' 字符,dirname 命令将返回点号 '.',表示当前目录。

此命令对路径名字符串进行处理,而不要求路径必须真实存在。我们可以提供多个路径名参数,dirname 命令将逐行打印每个路径名的目录部分。

如果不想换行打印,我们可以使用 -z 选项,该选项会使输出以 NUL 字符分隔而非换行符。

接下来,让我们谈谈 basename 命令。该命令用于获取路径名的文件名部分。

例如,执行 basename /path/to/file.txt 命令时,将返回 'file.txt',即文件的基本名称。

当只提供一个路径名参数时,我们可以选择性地提供一个 SUFFIX 参数,以去除文件名的后缀部分。

如果需要处理多个路径名参数,需要使用 -a 选项。我们还可以使用 -s 选项来指定去除文件名的后缀部分。

如果想要以 NUL 字符分隔输出而非换行符,我们可以使用 -z 选项。

我们将介绍如何在 bash 中利用参数扩展表达式来获取文件名的后缀名。

这个表达式在处理 filename 变量值时,会匹配最后一个 '.' 字符,并返回该字符后面的部分。需要注意的是,这个表达式是针对变量名进行的处理,而不是直接对字符串进行操作。

具体来说,如果我们将 'src/lib/utils.c' 赋值给 filename 变量,然后执行 ${filename.} 命令,将返回 '.c'(不包含 '.' 字符)。这是因为这个表达式在匹配到最后一个 '.' 后,返回了该字符后面的部分作为后缀名。

如果 filename 变量值中不包含 '.' 字符,该表达式将返回整个变量值。我们还可以通过在表达式前面加上 '.' 来主动添加 '.' 字符。