包虫病

注册

 

发新话题 回复该主题

干货Linux中使用basename [复制链接]

1#
哪里治白癜风的医院好         http://m.39.net/pf/bdfyy/bjzkbdfyy/
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命令可以接受多个名称作为参数。可以使用-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为后缀,可以看到输出结果中只显示/后面和name前面的内容了。

通常,此功能用于删除文件的扩展名:

[root

localhost~]#basename-s.conf/etc/
分享 转发
TOP
发新话题 回复该主题