当前位置: 首页 > 科技观察

干货:LinuxBasename命令使用实例

时间:2023-03-21 17:46:08 科技观察

basename是命令行中的一个实用小工具,可以去除给定文件名的目录和后缀。Centos7系统环境下如何使用basename命令在Centos7系统中,basename命令已经默认安装,包含在coreutils安装包中。basename有两种语法:basenameNAME[SUFFIX]basenameOPTION...NAME...<以上代码可复制粘贴,向左滑动即可>basename的最后一部分。也可以删除任何尾随后缀。这是一个简单的命令,最基本的就是把文件名前面的目录去掉,打印出来:[root@localhost~]#basename/etc/yum.repos.d/CentOS-Base.repoCentOS-Base。repo<上面的代码可以复制粘贴,可以向左滑动>basename命令默认删除所有尾部/字符:[root@localhost~]#basename/usr/local/local[root@localhost~]#basename/usr/locallocal<上面的代码可以复制粘贴,向左滑动>默认情况下,每个输出行以换行符(\n)结尾。要NUL终止,请使用-z(--zero)选项。[root@localhost~]#basename-z/usr/locallocal[root@localhost~]#<以上代码可以复制粘贴,可以向左滑动>basename接受多个文件basename命令可以接受多个名字as参数。您可以使用-a(--multiple)选项,后跟以空格分隔的文件列表。比如获取/etc/passwd和/etc/shadow的文件名,可以运行:[root@localhost~]#basename-a/etc/passwd/etc/shadowpasswdshadow<以上代码可以复制粘贴,你可以向左滑动>删除指定的结尾后缀要从文件名中删除任何结尾后缀,请将后缀作为第二个参数传递:[root@localhost~]#basename/etc/hostnamenamehost替代方法:[root@localhost~]#basename-sname/etc/hostnamehost<上面的代码可以复制粘贴,可以向左滑动>上面的例子中指定name作为后缀,可以看到只有/后面的内容和内容在输出结果中显示名称之前。通常,此函数用于删除文件的扩展名:[root@localhost~]#basename-s.conf/etc/httpd/conf/httpd.confhttpd或[root@localhost~]#basename/etc/httpd/conf/httpd.conf.confhttpd<以上代码可以复制粘贴,可以向左滑动>下面的例子中,使用-a选项指定多个文件,-s选项指定后缀内容:[root@localhost~]#basename-a-s.conf/etc/sysctl.conf/etc/httpd/conf/httpd.confsysctlhttpd<以上代码可以复制粘贴,可以向左滑动>另一种删除方法suffix末尾是使用-s(--suffix=SUFFIX)选项指定后缀。如上例所示。使用示例下面的示例展示了如何在bash脚本中使用for循环、mv命令和basename命令,将当前目录下的图像文件替换为文件扩展名“.jpg”到“.jpeg”:[root@localhosttest]#vimconvert.sh#!/bin/bashforfilein*.jpgdomv"$file""$(basename$file.jpg).jpeg"done<以上代码可以复制粘贴,滑动到左>图片总结basename命令的介绍到此结束,希望对大家有所帮助!本文转载自微信公众号《Linux就该这么学》,可以通过以下二维码关注。转载本文请联系Linux。这就是你应该如何学习公众号。