阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux中的basename命令使用实例

32次阅读
没有评论

共计 1411 个字符,预计需要花费 4 分钟才能阅读完成。

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

Centos7

如何使用 basename 命令

在 Centos7 系统中,已经默认安装了 basename 命令了,该命令包含在 coreutils 安装包里。
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

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

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

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 命令使用实例
通常,此功能用于删除文件的扩展名:

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

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 命令使用实例

总结

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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1411字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中