linux 下的basename命令介绍
basename 是一个用于提取文件路径中最后一部分(即文件名)并可选择性地去除文件后缀的命令行工具。它在 Linux 和其他 Unix-like 系统中广泛使用,特别是在脚本编写中。
一:命令介绍
root@meng:~# basename --help
Usage: basename NAME [SUFFIX]
or: basename OPTION... NAME...
Print NAME with any leading directory components removed.
If specified, also remove a trailing SUFFIX.
Mandatory arguments to long options are mandatory for short options too.
-a, --multiple support multiple arguments and treat each as a NAME
-s, --suffix=SUFFIX remove a trailing SUFFIX; implies -a
-z, --zero end each output line with NUL, not newline
--help display this help and exit
--version output version information and exit
Examples:
basename /usr/bin/sort -> "sort"
basename include/stdio.h .h -> "stdio"
basename -s .h include/stdio.h -> "stdio"
basename -a any/str1 any/str2 -> "str1" followed by "str2"
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/basename>
or available locally via: info '(coreutils) basename invocation'
二:使用方法
basename [OPTION] NAME [SUFFIX]
NAME:要处理的文件路径或文件名。SUFFIX:可选参数,用于指定要去除的文件后缀。脚本编写:在 shell 脚本中提取文件名以便进行后续处理,例如重命名文件或处理文件扩展名。简化输出:在命令行中快速获取文件名,避免显示完整路径。三:命令案例
root@meng:~# ls
0c86af62-fd21-4a77-be08-a53c49bd8c8f.zip meng.txt snap
root@meng:~# basename /root/meng.txt
meng.txt
root@meng:~# basename /root/meng.txt .txt
meng
root@meng:~# basename -s .txt /root/meng.txt
meng
root@meng:~# basename -az /root/meng.txt
meng.txtroot@meng:~#
root@meng:~# basename -a /root/meng.txt
meng.txt
root@meng:~# basename -a /root/meng.txt 0c86af62-fd21-4a77-be08-a53c49bd8c8f.zip
meng.txt
0c86af62-fd21-4a77-be08-a53c49bd8c8f.zip