我使用过的Linux命令之dirname - 截取给定路径的目录部分
本文链接:http://codingstandards.iteye.com/blog/800028
(转载请注明出处)
用途说明
dirname命令可以取给定路径的目录部分(strip non-directory suffix from file name)。这个命令很少直接在shell命令行中使用,我一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。根据手册页上说的“Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”,似乎说“取给定路径的目录部分” 并不能很准确的概括dirname命令的用途。Linux下还有一个命令是basename,它与dirname相反,是取得文件名称部分。
常用参数
无。
使用示例
示例一 来自手册页的例子
[root@qzt196 ~]# dirname /usr/bin/sort
/usr/bin
[root@qzt196 ~]# dirname stdio.h
.
[root@qzt196 ~]#
示例二
[root@qzt196 ~]# dirname /usr/bin
/usr
[root@qzt196 ~]# dirname /usr/bin/
/usr
注意:此处的输出结果,似乎有点怪。这应该看下dirname命令的源代码才能解释了。
示例三 在bash脚本中的运用
#!/bin/sh
# 跳转到脚本所在目录
cd $(dirname "$0") || exit 1
# 剩下的部分
这个写法我经常用到,因为有时候脚本执行时无法确定是在哪个目录,比如脚本用在crontab中时。
另一个写法是:cd `dirname $0` 其中反引号··等同于$()。
示例四 与另外一种截取目录的方法的比较
可以用${pathname%/*}截取掉pathname后面的文件部分。
[root@jfht ~]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin
[root@jfht ~]# pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/*}
/usr /usr/bin
[root@jfht ~]# pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/*}
/usr /usr
[root@jfht ~]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
[root@jfht ~]# pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=/; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*}
. stdio.h
[root@jfht ~]#
问题思考
1. 看了示例四的演示之后,怎样使用shell函数来实现dirname命令?
相关资料
【1】脚本部分 linux dirname命令: 截取路径名的目录
返回 我使用过的Linux命令系列总目录
分享到:
相关推荐
"umd-dirname" 可能是"dirname-shim" 实现的一部分,确保在UMD环境下也能正常获取目录名。 "文件名浏览器填充程序"可能是指"dirname-shim" 在浏览器环境下对模块路径处理的一种优化策略。由于浏览器环境与服务器...
`dirname`命令用于提取路径中的目录部分,而`basename`则用来获取路径中的文件名或最后一级目录名。例如,如果你有一个路径`/home/user/documents/file.txt`,运行`dirname /home/user/documents/file.txt`会返回`/...
Linux的dirname命令是一个非常实用的工具,用于从完整的文件路径中提取出目录部分。它主要剥离文件名中的非目录元素,只保留与目录相关的路径。这个命令在日常的文件操作和脚本编写中非常常见,特别是在需要处理路径...
在Linux操作系统中,命令行是用户与系统交互的主要方式之一,掌握各种命令的英文全称及其功能至关重要。本文将详细讲解部分常见的Linux命令及其用途。 1. `alias`: 创建别名,可以为复杂的命令或命令组合创建简短的...
安装目录被指定为`/opt/linux/x86-arm/aarch64-mix210-linux/`,这符合Linux系统中常见的第三方软件安装路径。 交叉编译是软件开发中的一个重要概念,特别是在多平台环境下的嵌入式系统开发。它允许我们在一个平台...
Linux学习手册-linux命令大全是指Linux命令大全,涵盖了多种Linux命令的使用方法和参数解释。以下是Linux学习手册-linux命令大全的知识点: 1. cd命令: cd命令用于更改当前工作目录。使用权限:全部使用者。使用...
目录名 捕获Windows路径。 安装 $ npm install regex-dirname-windows 用法 var re = require ( 'regex-dirname-windows' ) ; 关于 捕获Windows路径。 var base = re . exec ( 'foo\\bar\\index.js' ) [ 1...
目录名 捕获路径。 安装 $ npm install regex-dirname-posix 用法 var re = require ( 'regex-dirname-posix' ) ; 关于 捕获路径。 var base = re . exec ( 'foo/bar/index.js' ) [ 1 ] ; // returns 'foo...
在Linux环境中,`cd` 命令是用户日常操作中最为常用的命令之一,它允许用户在文件系统中切换当前工作目录。无论你是初学者还是经验丰富的系统管理员,熟练掌握`cd`命令的使用都将极大地提高你的工作效率。 - **基本...
pwd命令:pwd命令用于显示当前工作目录的完整路径。当用户不确定当前位置时,可以使用pwd来查看。 2. 查看文件内容命令 cat命令:cat命令用于查看、创建和合并文件。其基本用法是`cat filename`,将文件内容显示在...
mkdir 命令是 Linux 系统中最常用的命令之一,它用来创建目录。该命令创建由 dirname 命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由 dirname 指定的目录;如果给出了一个已经存在的路径,...
Linux mkdir命令用于建立名称为 dirName 之子目录。 语法 mkdir [-p] dirName 参数说明: -p 确保目录名称存在,不存在的就建一个。 实例 在工作目录下,建立一个名为 AAA 的子目录 : mkdir AAA 在工作目录下的 BBB ...
根据提供的文件标题、描述以及部分内文,我们可以总结出一系列重要的Linux命令及其用法,这些命令对于日常管理和操作Linux系统非常关键。以下是对这些命令的详细解析: ### 1. 目录操作 #### `ls` - **命令**: `ls...
Linux 系统命令及其使用详解(大全) Linux 系统命令是 Linux 系统中最基本也是最重要的组成部分,它们是 Linux 系统的核心。这些命令可以帮助用户管理文件、目录、权限、进程等等方面的内容。本文将详细介绍 Linux ...
`ls` 是Linux中最基本也是最常用的命令之一,用于列出指定目录下的文件和子目录列表。默认情况下,`ls` 只显示当前目录下的非隐藏文件及目录。该命令支持多种选项,以提供更丰富的输出: - **-a**:显示所有文件及...
- `cd`命令用于切换目录,可以使用相对路径或绝对路径。 - **复制文件和目录**: - `cp`命令用于复制文件和目录,`-r`选项用于递归复制目录。 - **移动或重命名**: - `mv`命令不仅可以移动文件,还能重命名文件...
以上命令是Linux操作系统中最基础且常用的命令之一,对于初学者来说非常重要。熟练掌握这些命令不仅能够提高工作效率,还能更好地理解和操作Linux系统。建议通过实践练习加深记忆,并逐渐扩展学习更多的高级命令和...
Linux 中 rmdir 命令使用详解 rmdir 命令是 Linux 中一个常用的命令,主要用来删除空目录。该命令的功能是删除指定的目录,但前提条件是该目录必须为空。如果目录非空,rmdir 命令将无法删除该目录。 命令格式:...
linux常用指令集合,可打印出来,平常的时候看一看。 1. 查看目录下有什么文件/目录 > ls //list列出目录的文件信息 > ls -l //list -list以“详细信息”查看目录文件 > ls -a //list -all查看目录“全部”(包括...