linux dirname目录 basename文件 命令

wanggongzhen 2014-12-22

一、dirname指令

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

2、用法:dirname filename

例子

[root@eccs_web log]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
[root@eccs_web log]# dirname /boot/grub/grub.conf
/boot/grub
[root@eccs_web log]# dirname /etc/inittab
/etc
[root@eccs_web log]# echo `pwd` && dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/home/Adtec/log
/etc/sysconfig/network-scripts
[root@eccs_web log]# cat a.sh
#!/bin/bash
#$0代表当前执行的脚本程序或者是命令
echo $0
echo `dirname $0`
APP_PATH="$(cd "$(dirname "$0")" && pwd)/.."
echo $APP_PATH
[root@eccs_web log]# ./a.sh
./a.sh
.
/home/Adtec/log/..

二、basename指令

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

2、用法:basename filename [suffix]

[root@eccs_web log]# basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0

[root@eccs_web log]# basename /boot/grub/grub.conf
grub.conf

[root@eccs_web log]# pwd
/home/Adtec/log

打印pwd命令 和 basename命令结果
[root@eccs_web log]# echo `pwd` && basename sysconfig/network-scripts/
/home/Adtec/log
network-scripts

#去除后面的.bak
[root@eccs_web log]# basename /boot/grub/grub.conf.bak .bak
grub.conf

#去除后面的.conf.bak
[root@eccs_web log]# basename /boot/grub/grub.conf.bak .conf.bak
grub

相关推荐

jacky的部落 / 0评论 2009-12-22