在 shell 命令行获取 绝对/相对 路径的不带扩展名的文件名

在命令行使用

如果有一个文件在某个目录下: tool/util/example.py
如果要获取它的不带扩展名的文件名:

file=tool/util/example.py
basename=`basename $file`
bbname=${basename%%.*}
echo $bbname

# tool/util/example.py 的输出结果:
example

这个办法对绝对、相对路径都有用

打包成一个 shell 程序来使用

打包成程序使用比较方便,特别是可以方便地用在其他 shell 脚本当中
把下面的代码保存在 bbname.sh 中:

file=$1
basename=`basename $file`
bbname=${basename%%.*}
echo $bbname

然后:

ln -s `pwd`/bbname.sh /usr/local/bin/bbname

如果没有写入/usr/local/bin 的权限,软链接到其他环境变量的目录下也可

在循环中使用非常方便,例如:

for file in `ls data/`;do
   basename=`bbname $file`
   Your command > newdir/$basename.out
done
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。