Linux Shell命令系列--basename获取基本文件名

一、目的

        学习linux shell编程的第一步就是熟悉linux的各种命令的使用,本篇开始逐次介绍一些常用linux shell命令。

        今天我们来讲解basename命令的使用。

二、介绍

        1、基本概念

        

        basename命令首先去除字符串末尾多余的斜杠(如果有的话),然后删除从最后一个斜杠(如果有的话)之前的所有内容,并且如果指定了suffix(后缀),输出结果中也会删除匹配的suffix。


        2、使用示例

        下面命令中的文件或者路径不一定是真实存在的,basename的输入参数只是字符串而已。 

#输出4.txt
basename /1/2/3/4.txt

 

#输出4.txt
basename /1/2/3/4.txt/

 

#输出4.txt
basename 4.txt

 

        去除指定后缀的命令

basename -s .txt /1/2/3/4.txt/
basename -s .txt /1/2/3/4.txt

 

        另外一种去除指定后缀的方法:

basename  /1/2/3/4.txt .txt
basename  /1/2/3/4.txt/ .txt

 

        指定不匹配的后缀对结果没有影响

basename  /1/2/3/4.txt/ .abc

 

        通过-a选项同时操作多个文件名或者路径名称

basename -a /1/2/3/4.txt a/b

 

        同时指定需要去除的后缀

basename -s .txt -a /1/2/3/4.txt a/b

 

        上图中我们发现输出结果是分行显示的,我们也可以指定参数实现拼接

basename -s .txt -z -a /1/2/3/4.txt a/b

 

        注意结果显示为"4b"。

以上,就是basename的基本内容。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452956.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java代码实现基数排序算法(附带源码)

基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。 1. 基数排序…

STC系列单片机的中断系统

目录 一、中断系统的定义 二、STC15系列单片机的中断请求源及结构图 三、中断查询表以及触发方式 四、在keil c中如何声明中断函数 五、外部中断 六、基于STC15芯片实战中断系统的使用 (1)外部中断2/外部中断3来检测门的开关状态 (2&a…

合并分支rebase和merge的区别

文章目录 一、前言1.1、master分支1.2、dev分支 二、合并2.1、git merge2.2、git rebase 三、总结四、最后 一、前言 实际开发工作的时候,我们都是在自己的分支开发,然后将自己的分合并到主分支,那合并分支用2种操作,这2种操作有…

工信部颁发的《计算机视觉处理设计开发工程师》中级证书

计算机视觉(Computer Vision)是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说,计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标,计算机视觉结合了图像处理、机器学习、模…

数据安全加密系统的核心目的是什么

随着信息化时代的快速发展,数据安全问题逐渐成为人们关注的焦点。数据一旦被非法获取或篡改,可能会给个人、企业甚至国家带来巨大的损失。因此,构建一个高效的数据安全加密系统,是确保数据安全的重要手段。 数据安全加密系统的核心…

Vue 学习随笔系列九 -- 表格中插入图片、背景、自定义表头

表格中插入图片和icon 文章目录 表格中插入图片和icon一、如何插入图片1、代码2、效果 二、文字添加背景1、代码2、效果 三、表头悬浮提示语四、表头添加图标 一、如何插入图片 1、代码 <template><div><el-tablesize"small"borderv-loading"l…

Spring 源码解读(五):@Conditional及其衍生扩展注解(5千字大章)

github地址&#xff1a;https://github.com/cass-pwx/conditional-demo 1、概述 条件装配是Spring Boot一大特点&#xff0c;根据是否满足指定的条件来决定是否装配 Bean &#xff0c;做到了动态灵活性&#xff0c;starter的自动配置类中就是使用Conditional及其衍生扩展注解…

spring boot3x登录开发-上(整合jwt)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 jwt简介 导依赖 编写jwt工具类 1.配置项直接嵌入代码&#xff0c;通过类名.静态方法使用 2.配置项写到…

ARM PAC指针认证的侧信道攻击——PACMAN安全漏洞

目录 Q1. PACMAN论文的内容是什么&#xff1f; Q2. Arm处理器是否存在漏洞&#xff1f; Q3. 受Arm合作伙伴架构许可设计的处理器实现是否受到影响&#xff1f; Q4. Cortex-M85受到影响吗&#xff1f; Q5. Cortex-R82受到影响吗&#xff1f; Q6. 指针认证如何保护软件&…

配置visualsvn提交后自动邮件通知

参考&#xff1a; https://blog.csdn.net/wiker_yong/article/details/10334967 # -*- coding: utf-8 -*- import sys import os import smtplib from email.mime.text import MIMEText from email.header import Headermail_host smtp.163.com #发送邮件的smtp地址 mail_us…

Swift Vapor 教程(查询数据、插入数据)

上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。 这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。 注&#xff1a;数据库配置比较重要 先将本地的Docker启动起来&#xff0c;用Docker管理数据库 将项目自己创建的Todo相关的都删掉…

小程序中封装下拉选择框

小程序中没有现成的下拉选择组件&#xff0c;有个picker组件&#xff0c;但是是底部弹出的&#xff0c;不满足我的需求&#xff0c;所以重新封装了一个。 封装的下拉组件 html部分&#xff1a; <view class"select_all_view"><!-- 内容说明&#xff0c;可…