📜  Linux 中的 basename 命令和示例

📅  最后修改于: 2022-05-13 01:57:31.411000             🧑  作者: Mango

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 命令