转自:http://blog.csdn.net/ljianhui/article/details/43128465
并感谢原作者的总结,此处作为一个收藏。
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等。
1、${var##*/}
该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下:
若使用时在shell程序文件中,可以使用变量来保存这个结果,再加以利用,如file=${var##*/}
2、${var##*.}
该命令的作用是去掉变量var从左边算起的最后一个'.'字符及其左边的内容,返回从左边算起的最后一个'.'(不含该字符)的右边的内容。使用例子及结果如下:
如果文件的后缀不仅有一个,例如,file.tar.gz,命令${var##*.}仅能提取最后一个后缀,而我想提取tar.gz时该怎么办?那么就要用下面所说的${var#*.}命令了。
3、${var#*.}
该命令的作用是去掉变量var从左边算起的第一个'.'字符及其左边的内容,返回从左边算起第一个'.'(不含该字符)的右边部分的内容。使用例子及结果如下:
从运行结果可以看到,使用该命令,可以提取出文件的多个后缀。
4、${var%/*}
该命令的使用是去掉变量var从右边算起的第一个'/'字符及其右边的内容,返回从右边算起的第一个'/'(不含该字符)的左边的内容。使用例子及结果如下:
从运行的结果可以看到,使用该命令,可以提取出我们需要的文件所在的目录
5、${var%%.*}
该命令的使用是去掉变量var从右边算起的最后一个'.'字符及其右边的内容,返回从右边算起的最后一个'.'(不含该字符)的左边的内容。使用例子及结果如下:
当我们需要建立一个与文件名相同名字(没有后缀)的目录与对应的文件相对应时,就可以使用该命令来进行操作。例如,解压文件的情况就与此类似,我们压缩文件file.zip时,会在与file.zip同级目录下建立一个名为file的目录。
6、${}总结
看到这里,就可以知道,其实该命令的用途非常广泛,上面只是指针文件名和目录名的命名特性来进行提取的一些特例而已。
${}并不是专门为提取文件名和目录名设计的命令,那么basename和dirname命令就是专门为做这一件事而已准备的了。
1、basename
该命令的作用是从路径中提取出目录名,使用方法为 dirname NAME
使用例子如下:
注:该命令不仅能提取出普通文件所的目录,它能提取出任何文件所在的目录,例如目录所在的目录,如下:
相关推荐
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,...
本文将详细介绍如何在Linux shell中提取文件名和目录名。 在shell中,我们可以利用特殊变量`$file`存储文件路径,然后使用特定的语法结构来提取所需的组件。以下是一些常用的方法: 1. **提取目录名**: - `${...
一定要vi crontab.sh来写 ... 您可能感兴趣的文章:一天一个shell命令 linux文本操作系列-tree命令详解Linux shell 之 提取文件名和目录名的一些方法总结Linux shell常用的73条命令总结Linux下使用shell脚本自动执行脚本
### 使用Bash Shell获取文件名和目录名的简单方法 #### 前言 在日常的脚本编写或系统管理工作中,我们经常会遇到需要解析文件路径的情况,以便从中提取文件名或者目录名。Bash Shell作为Linux和Unix系统中常用的...
总的来说,无论是在命令行界面还是编程环境中,都有多种方法可以实现提取当前目录下所有文件名的功能。选择哪种方法取决于具体需求和个人喜好,熟练掌握这些技能对于日常的系统管理和自动化工作至关重要。
而在Linux环境中,shell脚本编写则是系统管理、自动化运维和开发工作中的一项基本技能。Shell脚本不仅能将复杂的系统命令组合成自动化任务,还能够实现条件判断、流程控制等功能,极大提高工作效率。 脚本的名称...
从给定的Linux Shell脚本示例中,我们可以提炼出一系列关键知识点,这些知识点涵盖了Shell编程的基本结构、流程控制、变量处理以及系统操作等方面。下面将详细解释这些知识点: ### 知识点一:基本输入输出与循环...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
16. **basename**和**dirname**: 分别用于获取文件名和目录名。例如:`basename /path/to/file`得到`file`,`dirname /path/to/file`得到`/path/to`。 17. **head**和**tail**: 显示文件头部或尾部的一部分内容。...
由于给定文件信息中【标题】和【描述】内容相同,并且【标签】为空,【部分内容】虽然部分文字可能由于OCR扫描技术原因出现错误或遗漏,但依旧可以提取出与Linux和Shell编程相关的一些关键词和概念。以下是基于给定...
在Shell编程中,有一些基本的概念和命令是必须掌握的,下面列举了一些常见的例子: - **Shebang(#!)**:Shell脚本的第一行通常是`#!/bin/sh`或`#!/bin/bash`,这行被称为shebang,它告诉系统使用哪个解释器来运行...
本文档提供了 Linux shell 脚本编程的基础知识和实用技巧,帮助读者理解如何创建和管理 shell 脚本。通过对语法结构、变量、命令以及流程控制的学习,开发者可以更加高效地开发出复杂且功能强大的脚本程序。此外,...
《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中Shell编程的权威教程。Shell作为操作系统与用户交互的重要桥梁,是系统管理员和程序员进行自动化任务处理的必备工具。通过学习Shell编程,我们可以...
在这里,`/bin/sh`指的是bash shell,这是Linux中最常见的shell之一。如果没有这行代码,尝试执行脚本时将会遇到错误。 ##### 2.2 注释 在Shell脚本中,注释是非常重要的,可以帮助他人理解脚本的功能和逻辑。任何...
总结来说,获取Linux Shell脚本中的当前工作目录主要依赖于`$0`、`dirname`、`cd`、`pwd`这些命令的组合使用,以及对环境变量和命令替换的理解。理解这些基本概念和命令对于编写复杂的Shell脚本至关重要。通过灵活...
- 如何提取文件名和目录名,`basename`和`dirname`命令在这方面的应用非常常见。 - 利用shell脚本部署Java项目,通常涉及到`jar`命令和环境变量的设置。 - 配置SSH和Xshell连接服务器,涉及SSH密钥对生成和配置。 - ...
### Linux Shell编程基础教程 #### 1. Linux 脚本编写基础 ##### 1.1 语法基本介绍 在 Linux 系统中,Shell 脚本是一种强大的工具,可以自动化许多日常任务。理解其基本语法对于有效地使用 Shell 编程至关重要。 ...
- `basename`和`dirname`: 提取文件名或路径。 - `head`和`tail`: 显示文件头或尾部的部分内容。 - `sed`和`awk`: 强大的文本处理工具,用于搜索、替换和数据提取。 此外,shell脚本支持使用管道(`|`)将多个命令...