Linux basename命令用于打印目录或者文件的基本名称,从名称中删除任何前导目录和后缀。
Syntax
basename NAME [SUFFIX]
basename OPTION
Key
--help
Display help
--version
Output version information and exit
basename将打印NAME,删除所有主目录。如果指定了后缀格式,它还将删除后面的SUFFIX(通常是文件扩展名)。
例子
获取主文件夹的名称:
> basename ~
root
> basename $(pwd)
> cd /usr/local
> basename $(pwd)
local
使用参数展开$()从变量pathnamevar中提取文件名并存储在变量结果中
> result=$(basename "$pathnamevar")
对比删除文件
对于在目录directoryA
中找到的每个文件,从目录directoryB
中删除匹配的文件:
for file in directoryA /*; do rm directoryB /`basename $file`; done
批量修改文件的扩展名
> vim re.sh
for file in *.$1; do
mv $file 'basename $file $1'.$2
done
调用
将当面目录下所有.htm
的文件重命名为.html
re htm html
删除结尾的后缀
basename
取文件名并打印文件名的最后一部分。它也可以删除任何结尾的后缀。
> basename /etc/nginx.conf .conf
nginx
或者使用-s
> basename -s .conf /etc/nginx.conf
nginx
同时获取多个文件名
basename
命令可以接受多个名称作为参数,使用-a
参数
> basename -a /etc/my.cnf /etc/nginx.conf
my.cnf
nginx.conf
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容