linux dirname目录 basename文件 命令

一、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

猜你喜欢

转载自hbiao68.iteye.com/blog/2169353
今日推荐