Linux basename 命令新手教程(附实例)Linux basename 命令新手教程(附实例)Linux basename 命令新手教程(附实例)Linux basename 命令新手教程(附实例)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux basename 命令新手教程(附实例)

在此页

  1. Linux 基本名称命令
  2. Q1。 basename 命令如何工作?
  3. Q2。 basename 可以处理多个输入吗?
  4. Q3。如何制作 basename strip 文件扩展名?
  5. Q4。如何让每一行输出都以NUL结尾?
  6. 结论

有时,在命令行上工作时(尤其是在处理 shell 脚本时),您可能只对文件名感兴趣,但您可用的是文件的完整路径。因此,要求是去除路径的目录部分。你会很高兴知道有一个命令 - basename - 可以完成这项工作。

在本教程中,我们将使用一些易于理解的示例来讨论 basename 的基础知识。但在我们开始之前,值得一提的是,这里的所有示例都已经在 Ubuntu 16.04 LTS 机器上进行了测试。

Linux 基名命令

basename 命令允许您从不需要的文件名中剥离组件。以下是工具语法:

basename NAME [SUFFIX]
basename OPTION... NAME...

这是手册页中关于它的内容:

basename - strip directory and suffix from filenames

Print NAME with any leading directory components removed. If specified, also remove a trailing
SUFFIX.

以下是一些 Q&A 风格的示例,它们应该可以让您对 basename 命令的工作原理有一个很好的了解。

Q1。 basename 命令如何工作?

默认情况下,如果您运行 basename 命令并将文件的完整路径作为输入,则该命令会在输出中返回文件名。例如,当我执行以下命令时:

basename /home/himanshu/Downloads/analytics.pdf

我得到以下输出:

analytics.pdf

Q2。 basename 可以处理多个输入吗?

是的,它可以。但要做到这一点,您需要使用 -a 命令行选项。例如,当我执行以下命令时:

basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

这是我得到的输出:

analytics.pdf
test.png

Q3.如何制作 basename strip 文件扩展名?

有时,您可能只想获取文件名,而不是其扩展名。好吧,这可以使用 -s 命令行选项来完成(这需要您将后缀作为输入传递)。

例如,以下命令:

basename -s .pdf /home/himanshu/Downloads/analytics.pdf

产生了这个输出:

analytics

Q4.如何让每一行输出都以NUL结尾?

默认情况下,换行符用作输出中的分隔符。但是,如果需要,您可以强制 basename 使用 NUL 作为分隔符。这可以使用 -z 命令行选项来完成。

例如:

basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

这是输出:

analytics.pdftest.png

所以你在这里看不到 NUL 字符。为此,您需要将输出重定向到一个文件,然后在 vim 等编辑器中打开该文件。这是 vim 显示的内容:

结论

如您所见,basename 不是一个功能非常丰富的命令 - 它提供的选项是有限的,其中大部分已在本教程的此处进行了讨论。完成这些练习后,请前往工具手册页了解更多信息。

©2015-2025 艾丽卡 support@alaica.com