共计 1719 个字符,预计需要花费 5 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 Linux 中如何使用 Basename 命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
basename 是一个命令行中实用的小工具,可从给定的文件名中删除目录和后缀。
系统环境
Centos7
如何使用 basename 命令
在 Centos7 系统中,已经默认安装了 basename 命令了,该命令包含在 coreutils 安装包里。
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
以上代码可复制粘贴,可往左滑
默认情况下,每条输出行以换行符 (\n) 结尾。要以 NUL 结尾,请使用 -z(–zero)选项。
[root@localhost ~]# basename -z /usr/local local[root@localhost ~]#
以上代码可复制粘贴,可往左滑
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 前面的内容了。
通常,此功能用于删除文件的扩展名:
[root@localhost ~]# basename -s .conf /etc/httpd/conf/httpd.conf httpd 或者 [root@localhost ~]# basename /etc/httpd/conf/httpd.conf .conf httpd
以上代码可复制粘贴,可往左滑
下面例子,使用 - 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 命令”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!