zoukankan      html  css  js  c++  java
  • Linux系统中的basename命令使用实例

    basename是一个命令行中实用的小工具,可从给定的文件名中删除目录和后缀。
    系统环境

    Centos7

    如何使用basename命令

    在Centos7系统中,已经默认安装了basename命令了,该命令包含在coreutils安装包里。
    Linux中的basename命令使用实例Linux中的basename命令使用实例
    basename有两种语法:

    basename NAME [SUFFIX]
    basename OPTION... NAME...
    

    basename最后一部分。也可以删除任何结尾的后缀。这是一个简单的命令,最基本的是去掉文件明前面的目录并打印出来:

    [root@localhost ~]# basename /etc/yum.repos.d/CentOS-Base.repo 
    CentOS-Base.repo
    

    basename命令默认删除所有结尾的/字符:

    [root@localhost ~]# basename /usr/local/
    local
    [root@localhost ~]# basename /usr/local
    local
    

    默认情况下,每条输出行以换行符( )结尾。要以NUL结尾,请使用-z(--zero)选项。

    [root@localhost ~]# basename -z /usr/local
    local[root@localhost ~]# 
    

    Linux中的basename命令使用实例Linux中的basename命令使用实例

    basename接受多个文件

    basename命令可以接受多个名称作为参数。可以使用-a(--multiple)选项,然后使用空格分隔文件列表。例如,要获取/etc/passwd和/etc/shadow的文件名,可以运行:

    [root@localhost ~]# basename -a /etc/passwd /etc/shadow
    passwd
    shadow
    
    删除指定结尾的后缀

    要从文件名中删除任何结尾的后缀,请将后缀作为第二个参数传递:

    [root@localhost ~]# basename /etc/hostname name
    host
    另一种方法:
    [root@localhost ~]# basename -s name /etc/hostname 
    host
    

    上面例子中,指定name为后缀,可以看到输出结果中只显示/后面和name前面的内容了。
    Linux中的basename命令使用实例Linux中的basename命令使用实例
    通常,此功能用于删除文件的扩展名:

    [root@localhost ~]# basename -s .conf  /etc/httpd/conf/httpd.conf
    httpd
    或者
    [root@localhost ~]# basename /etc/httpd/conf/httpd.conf .conf
    httpd
    

    Linux中的basename命令使用实例Linux中的basename命令使用实例
    下面例子,使用-a选项指定多个文件,-s选项指定后缀内容:

    [root@localhost ~]# basename -a -s .conf /etc/sysctl.conf /etc/httpd/conf/httpd.conf 
    sysctl
    httpd
    

    删除末尾后缀的另一种方法是使用-s(--suffix = SUFFIX)选项指定后缀。上面实例中以展现。

    使用实例

    以下示例显示了如何在bash脚本中使用for循环、mv命令和basename命令,通过将当前目录下面的图片文件,文件扩展名从“ .jpg”替换为“ .jpeg”:

    [root@localhost test]# vim convert.sh 
    
    #!/bin/bash
    for file in *.jpg
    do
      mv "$file" "$(basename $file .jpg).jpeg"
    done
    

    Linux中的basename命令使用实例Linux中的basename命令使用实例
    Linux中的basename命令使用实例Linux中的basename命令使用实例

    总结

    basename是一个命令行实用程序,可从给定的文件名中删除目录和后缀。

  • 相关阅读:
    计算公司下班时间(娱乐)
    设计模式-观察者模式
    vue 打包后白屏的问题
    HashSet实现原理
    LinkedList实现原理
    ArrayList的实现原理
    HashMap实现原理分析
    深入理解java动态代理机制
    Spring工作原理
    数据库SQL优化大总结之 百万级数据库优化方案
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/15106765.html
Copyright © 2011-2022 走看看