basename

basename命令在shell编程中还是非常实用的。
1.对于文件路径,可以去除文件的路径和文件的后缀输出文件名称。
2.对于目录路径,可以去除目录路径输出目录名称。

参考文档

  1. basename 源代码

https://github.com/coreutils/coreutils

  1. basename 文档

http://www.maizure.org/projects/decoded-gnu-coreutils/

架构图

例子

1.查看help/version
basename --help
basename --version

2. basename 不加任何参数选项
basename ~/workspace/shell_command/base_name.sh
basename ~/workspace/shell_command/base_name.sh .sh

输出结果
base_name.sh
base_name

3. 参数选项 -a, --multiple  支持一次处理多个路径字符串,并把基本名称打印到终端
basename -a ~/workspace/shell_command/base_name.sh  ~/workspace/shell_command/hostid_test.sh

输出结果
base_name.sh
hostid_test.sh

对于目录路径的处理

basename -a ~/workspace/shell_command  ~/workspace/shell_command

输出结果
shell_command
shell_command

4. 参数选项 -s, --suffix 移除文件后缀
basename -s .sh base_name.sh
basename -s .sh ~/workspace/shell_command/base_name.sh

输出结果
base_name
base_name

5.参数选项 -z,--zero 在输出处理过的路径字符串后,不输出任何东西。在不加此参数时,会在输出的结果后,会换到下一行。
basename    ~/workspace/shell_command/base_name.sh
basename -z ~/workspace/shell_command/base_name.sh

输出结果

6.在shell脚本中的使用
#!/bin/bash
declare -a dirname
declare -a filename
file_path="/home/maobin/workspace/shell_command/hostid_test.sh"
file_path2="/home/maobin/workspace/shell_command/base_name.sh"dir_path="/home/maobin/workspace/shell_command"
dir_path2="/home/maobin/workspace"echo "case 1"
filename=`basename $file_path`
echo "filename:${filename}"
dirname=`basename $dir_path`
echo "dirname:${dirname}"
echo -e "\n"echo "case 2"
filename=`basename -a $file_path $file_path2`
echo "filename: ${filename[@]}"
dirname=`basename -a $dir_path $dir_path2`
echo "dirname:${dirname[@]}"
filename=`basename -z -a $file_path $file_path2`
echo "filename: ${filename[@]}"
echo -e "\n"echo "case 3"
filename=`basename -s .sh $file_path`
echo "filename:${filename}"
filename=`basename $file_path .sh`
echo "filename:${filename}"
filename=`basename -s .sh -a $file_path $file_path2`
echo "filename: ${filename[@]}"
echo -e "\n"

输出结果
case 1
filename:hostid_test.sh
dirname:shell_command

case 2
filename: hostid_test.sh
base_name.sh
dirname:shell_command
workspace
base_name.sh: line 28: warning: command substitution: ignored null byte in input
filename: hostid_test.shbase_name.sh

case 3
filename:hostid_test
filename:hostid_test
filename: hostid_test
base_name

[Linux shell] basename详细说明相关推荐

  1. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  2. Linux shell脚本基础学习详细介绍(完整版)

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  3. linux shell数据重定向(输入重定向与输出重定向)详细分析

    转载自: linux shell数据重定向(输入重定向与输出重定向)详细分析 - 程默 - 博客园 http://www.cnblogs.com/chengmo/archive/2010/10/20/ ...

  4. Linux shell脚本基础学习详细介绍(完整版)2

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  5. shell编程入门 linux解释器原理,Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对.doc...

    Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对 Shell编程入门:Linux解释器原理详细介绍使用Shell进行工作的人们对Unix/Linux下的Shell编程都很 ...

  6. 详细介绍Linux shell脚本系列基础学习(列表)

    本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...

  7. 详细介绍Linux shell脚本基础学习(一)

    2019独角兽企业重金招聘Python工程师标准>>> Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础 ...

  8. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  9. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现 #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释 ...

最新文章

  1. linux入门级知识回顾
  2. 信息系统项目管理知识--项目风险管理
  3. jfinal mysql增删改查_Jfinal简单实现增删改查
  4. 用一张图片告诉你芯片设计
  5. LeetCode MySQL 178. 分数排名(dense_rank连续排名)
  6. 风机桨叶故障诊断(二) 获取图像几何主方向
  7. [转载] JVM中对象的回收过程
  8. 2017级计科新生游戏大作业制作讲解
  9. Doris之Rollup 与查询
  10. [C#][SAMPLE][CODE][Control]RadioBox、CheckBox和Validating事件的相关处理
  11. 剑指offer刷题顺序
  12. 各省农村人均受教育年限及村委会个数(2011-2019年)
  13. “谈了四年的男友寒心了,我已是接近30的老女人”
  14. 微信小程序之猜拳游戏
  15. Google Adsense 西联汇款热点问题的说明
  16. 【笔记】ConcurrentHashMap,保证线程安全,并且效率高
  17. 国庆第三天的一些杂感
  18. go 语言zip压缩包 读取
  19. H-ui.admin v3.1多图片预览上传的问题解决
  20. 这大概是你见过最全面的 Python 重点了

热门文章

  1. Echarts渲染行政区划,实现聚焦高亮交互
  2. css隐藏最后一个div的子元素
  3. Java对比两张Excel表的数据_比较两个Excel表格并提取重复数据
  4. oracle游标卡尺作用,四深度游标卡尺的结构原理、规格、用途
  5. 英特尔与波士顿咨询公司联合向企业客户推售 AI
  6. python cron_你应该使用 Python 管理 Cron 作业
  7. 日期控件My97DatePicker的使用
  8. 【转】手机应用为什么明明已经退出,还会收到推送的消息?
  9. ‘utf-8‘ codec can‘t decode byte 0x80 in position 64: invalid start byte
  10. 清北计算机专业研究生在哪里读研,本科清北去普通985甚至211读研,你会反向读研吗?...