Linux 中的 basename 命令和示例
basename从文件名中去除目录信息和后缀,即它打印文件名NAME并删除所有前导目录组件。
使用 basename 命令:
basename命令可以通过简单地编写 basename 后跟文件名或完整路径名来轻松使用。
basename 命令的语法:
$basename NAME [SUFFIX]
or
$basename OPTION NAME
其中, NAME是指文件名或文件完整路径名, OPTION是指与basename命令兼容的选项,如果您想去除文件的后缀,您可以在文件名后跟您想要的 SUFFIX 名称摆脱。
例子 :
/* basename removes directory path and
returns the file name, kt */
$basename /usr/local/bin/kt
kt
在第一种情况下, basename命令从文件 kt 给出的完整路径名中删除目录名称,在第二种情况下basename从 kt.html 中删除后缀 .html。
basename 命令的选项:
- -a, – -multiple 选项:此选项允许您支持多个参数并将每个参数视为一个NAME,即您可以使用 -a选项提供多个文件名或完整路径名。
/* -a is used for multiple inputs */ $basename -a /usr/local/bin/kt /usr/local/bin/kt.html kt kt.html
- -s, – -suffix = SUFFIX 选项:此选项删除尾随后缀 SUFFIX,例如文件扩展名。
/*.html suffix is removed from kt.html when followed by -s option */ $basename -s .html kt.html kt
- -z 选项:这将使用 NULL 而不是换行符分隔输出。
/* The outputs of the two arguments passed are not separated by a newline*/ $basename -az /usr/local/bin/kt kt.html ktkt
- – -help 选项:显示帮助信息并退出。
- – -version 选项:显示版本信息并退出。
basename 命令的应用:
有许多实用程序可用,它们仅在涉及 shell 脚本时有用,当单独使用时没有任何实际应用,而basename属于这一类别。
借助 basename 命令将 gif 图像文件转换为 png 图像文件的 shell 脚本示例:
/*shell script to convert the
gif image file format into
png image file format */
#!/bin/sh
for file in *.gif;do
#exit if there are no files
if [! -f $file];then
exit
fi
b='basename $file .gif'
echo NOW $b.gif is $b.png
giftopnm $b.gif | pnmtopng >$b.png
done
在上面的shell脚本中, basename命令用于提取扩展名为.gif而不带扩展名的文件名,以便将它们转换为.png文件。
参考资料: basename 命令