Linux命令之获取文件或名basename

概述

basename 命令用于打印目录或者文件的基本名称。通常在 shell 脚本中用于获取文件名或目录名。
在这里插入图片描述

注:basename 命令不会关注路径是否真实有效,是给 basename 指定一个路径,basename 命令会删掉所有的前缀包括最后一个 ‘/’ 字符,然后将后缀的字符串显示出来。

语法

basename 命令的语法如下:

basename 路径 [后缀]
# 或
basename 选项... 路径...

其中 basename 命令支持的选项有:

选项 说明
-a 表示支持多个求多个路径的名字
-s 表示移除后缀
-z 表示输出不换行
–help 查看帮助信息
–version 输出版本信息

使用

获取文件名

可以在 basename 命令后面跟一个文件的绝对路径,就可以获取到名字了,例如:

# 语法
basename 文件路径
# 示例
basename /root/home/test.txt

在这里插入图片描述

注:无论这个路径是否真的存在,都会输出名字。

获取目录名

同样可以在 basename 命令后面跟一个目录的绝对路径,就可以获取到目录名了。语法如下:

# 语法
basename 目录路径
# 示例
basename /root/home/hello

在这里插入图片描述

去掉文件后缀

默认是会连同文件后缀一起输出的,例如 basename /root/test.txt 就会输出 test.txt,如果我们不想要文件后缀,可以有如下两种做法:

# 语法一
basename 带后缀的文件路径 后缀
# 示例一
basename /root/test.txt .txt

# 语法二
basename -s 后缀 带后缀的文件路径
# 示例二
basename -s .txt /root/test.txt

Linux命令之获取文件或名basename_第1张图片

获取多个路径的名字

可以同时获取多个文件路径或目录文件的名字:

# 语法
basename -s 路径1 路径2 路径3 ...
# 实例
basename -a /root/abc.txt /root/home /home/db.log

在这里插入图片描述

输出路径不换行

语法如下:

basename -z 路径

Linux命令之获取文件或名basename_第2张图片

你可能感兴趣的:(Linux,linux,bash,运维)