Shell basename命令

Shell basename命令一 命令解析 1 1 功能 basename stripdirecto 即去除文件名的目录部分和后缀部分 返回一个字符串参数的基本文件名称 1 2 语法格式 basenameNAME SUFFIX basenameOPTI 3 使用实例 1 basename usr bin sort 输出 sort

一、命令解析

1.1 功能 

        basename – strip directory and suffix from filenames

        即去除文件名的目录部分和后缀部分,返回一个字符串参数的基本文件名称。

1.2 语法格式

        basename NAME [SUFFIX]

        basename OPTION

1.3 使用实例

        basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。basename 命令应用以下创建基本文件名称的规则:

        1. 如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠字符,则将字符串更改为单个 /(斜杠)。跳过步骤 2 到 4。

        2. 从指定字符串除去任何拖尾的 / 字符。

        3. 如果在 String 参数中剩余任何 / 字符,则除去字符串的前缀直到(包含)最后一个 / 字符。

        4. 如果指定 Suffix 参数,且它和字符串中的剩余的字符相同,则不修改此字符串。例如,输入:

        K > basename /u/dee/desktop/cns.boo cns.boo

结果是:cns.boo

        如果指定 Suffix 参数,且它和字符串中所有字符都不相同,但和字符串的后缀相同,则除去指定后缀。例如,输入:

        K > basename /u/dee/desktop/cns.boo .boo

        结果是:cns

        不能在字符串中查找到指定的后缀不作为错误处理。

        basename 和 dirname命令通常用于 shell 脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。


退出状态

        该命令返回以下退出值:

                0 成功完成

                >0 发生错误

示例

        1. 要显示一个 shell 变量的基本名称,请输入:basename $WORKFILE

        此命令显示指定给 shell 变量 WORKFILE 的值的基本名称。如果 WORKFILE 变量的值是 /home/jim/program.c 文件,则此命令显示 program.c。

        2. 要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:

        OFILE=`basename $1 .c`.o

        此命令指定给 OFILE 文件第一个位置上的参数($1)的值,但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211900.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:19
下一篇 2026年3月18日 下午9:20


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号