gtxyzz

Linux basename命令:打印目录或者文件的基本名称

gtxyzz linux 2023-01-26 827浏览 0

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

继续浏览有关 未分类 的文章
发表评论