首页 > 代码库 > Linux dirname、basename(转)

Linux dirname、basename(转)

首先使用 --help 参数查看一下。basename命令参数很少,很容易掌握。
 
$ basename --help
 
用法示例:
 $ basename /usr/bin/sort       输出"sort"。
 $ basename ./include/stdio.h .h  输出"stdio"。
 
 为basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来。

basename命令格式:
basename [pathname] [suffix]
basename [string] [suffix]
 
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。

 

额外补充:
1、$@
$@ 为传递的参数
2、$#
$# 为传递参数的数量
3、$?
    是shell变量,表示"最后一次执行命令"的退出状态,一般0表示成功,非0数值表示没有成功。
切记:
$?永远表示shell命令最后一次执行后的退出状态,当函数执行完毕后,如果又执行了其它命令,则$?不再表示函数执行后的状态,而表示其它命令的退出状态.
4、$!
    代表pid,进程id
5、$$
    代表ppid,父进程id

6、$0代表shell命令本身

http://blog.chinaunix.net/uid-25505925-id-165025.html

 

一、dirname指令

1、功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)

2、用法:dirname filename
例如下面几个例子
(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
(2)# dirname /boot/grub/grub.conf
/boot/grub
(3)# dirname /etc/inittab
/etc
(4)# echo `pwd` && dirname modprobe.conf
/etc
.
(5)#echo `pwd` && dirname sysconfig/network-scripts/
/etc
sysconfig
Linux系统管理
二、basename指令

1、功能:从给定的包含绝对路径的文件名中去除左边目录部分或者同时去除某个后缀的内容(目录的部分),然后返回剩下的部分(非目录的部分)

2、用法:basename filename [suffix]
例如下面几个例子
(1)#basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
(2)#basename /boot/grub/grub.conf
grub.conf
bt4破解无线网络
(3)#echo `pwd` && basename sysconfig/network-scripts/
/etc
network-scripts
(4)# basename /boot/grub/grub.conf.bak .bak
gru

http://blog.chinaunix.net/uid-25505925-id-165025.html

Linux dirname、basename(转)