使用'basename -s'从bash中的路径中提取文件名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用'basename -s'从bash中的路径中提取文件名相关的知识,希望对你有一定的参考价值。

任何人都可以解释以下代码:

for var in $1*.html
    echo $( basename -s .html $var )
done

-s做什么?它是否从每个文件名中删除.html?

答案

-s suffix选项意味着basename从文件名中删除后缀(如果存在)。

例如:

file=path/to/file.html
basename "$file"          => yields file.html
basename -s .html "$file" => yields file
basename -s  html "$file" => yields file.
basename -s .txt  "$file" => yields file.html since the string has no .txt extension

不知道为什么你的for循环中有$1*.html - 这会抑制glob扩展,只会产生一个文字*.html的文件。

以上是关于使用'basename -s'从bash中的路径中提取文件名的主要内容,如果未能解决你的问题,请参考以下文章

basename命令的详解

basename命令

Linux常用命令简述--dirname与basename

linux basename学习

File.basename

Linux命令之获取文件或名basename