Linux

linux 文件路径截取 basename,dirname

2022-01-24  本文已影响0人  春秋不做梦

basename

  1. 命令简介

basename 命令从文件路径中剥离目录和后缀,以获取文件的基本名称。与 dirname 命令作用相反,dirname 用于获取目录部分。

2.命令格式

basename NAME [SUFFIX]
basename OPTION... NAME...

3.选项说明

长选项的强制参数对于短选项也是强制的。
-a, --multiple
支持多个文件名称参数,将每一个参数当做文件名对待
-s, --suffix=SUFFIX
移除后缀
-z, --zero
以空字符 NUL 分隔输出而不是换行符
--help
显示帮助并退出
--version
显示版本并退出

4.常用示例

(1)获取文件名,不包含目录。

$basename /var/log/zabbix/zabbix_agentd.log
zabbix_agentd.log

(2)获取文件名,不包含目录与后缀。

$basename /var/log/zabbix/zabbix_agentd.log .log
zabbix_agentd

(3)同时获取多个文件名,不包含目录与后缀。

$basename -a -s .log  /var/log/zabbix/zabbix_agentd.log /var/log/mail.log
zabbix_agentd
mail

(4)如果路径最后一个是目录,那么即匹配最后一个目录的名字。

$basename /var/log/zabbix/
zabbix

dirname

  1. 命令简介

dirname 命令从文件路径中获取文件目录。作用与 basename 命令相反,basename 用于获取文件名。
如果文件路径中不包含 /,那么输出 . 表示当前目录。如果文件路径最后一个字符是 /,那么剥离倒数第二个 / 及其后的内容。

2.命令格式

dirname [OPTION] NAME...

3.选项说明

-z, --zero
用空字符 NUL 而不是换行符分隔输出
--help
显示帮助并退出
--version
显示版本并退出

4.常用示例

(1)获取目录部分,剥掉文件名。

$dirname /var/log/zabbix/zabbix_agentd.log
/var/log/zabbix

(2)获取目录部分,剥掉文件名,后跟多个文件路径。

$dirname  /var/log/zabbix/zabbix_agentd.log /var/log/mail.log
/var/log/zabbix
/var/log

(3)获取目录的目录。即如果文件路径最后一个字符是 /,那么剥离倒数第二个 / 及其后的内容。

$dirname /var/log/zabbix/
/var/log

(4)如果文件路径中不包含 /,那么输出 . 表示当前目录。

$dirname bdLY.py 
.

(5)路径是根目录的特殊情况。不剥除任何内容,输出 /。

dirname /
/
上一篇下一篇

猜你喜欢

热点阅读