Shell脚本中basename命令的高效使用指南
创作时间:
作者:
@小白创作中心
Shell脚本中basename命令的高效使用指南
引用
7
来源
1.
https://www.cnblogs.com/my_captain/p/7147656.html
2.
https://www.geeksforgeeks.org/basename-command-in-linux-with-examples/
3.
https://ioflood.com/blog/bash-basename/
4.
http://manual.51yip.com/shell/ivr.html
5.
https://www.cnblogs.com/my_captain/p/7147652.html
6.
https://linuxize.com/post/basename-command-in-linux/
7.
https://www.baeldung.com/linux/basename-guide
在Shell脚本开发中,basename命令是一个不可或缺的工具,主要用于从路径中提取文件名或目录名,并可去除指定的前缀和后缀。掌握其用法可以让你的脚本编写更加简洁高效。
基本语法与选项
basename的基本语法如下:
basename NAME [SUFFIX]
NAME: 文件或目录的路径。SUFFIX: 可选参数,用于移除文件名末尾的指定后缀。
选项
-a, --multiple: 支持多个输入,分别处理每个参数。-s, --suffix=SUFFIX: 移除所有匹配的后缀(需与-a配合使用)。-z, --zero: 使用 NUL 字符分隔输出结果,而非换行符。--help: 显示帮助信息并退出。--version: 显示版本信息并退出。
基础用法示例
提取文件名
$ basename /path/to/file.txt
file.txt
删除指定后缀
$ basename /path/to/file.txt .txt
file
处理多个输入
$ basename -a /path/to/file1.txt /path/to/file2.md
file1.txt
file2.md
高级应用实例
在日志清理脚本中的应用
在系统管理中,日志文件的清理是一个常见的任务。以下是一个使用basename的日志清理脚本示例:
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67
E_WRONGARGS=65
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
case "$1" in
"" )
lines=$LINES
;;
*[!0-9]* )
echo "Usage: `basename $0` file-cleanup"
exit $E_WRONGARGS
;;
* )
lines=$1
;;
esac
if [ "$PWD" != "$LOG_DIR" ]
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi
tail -$lines messages > mesg.temp
mv mesg.temp messages
cat /dev/null > wtmp
echo "Logs cleaned up."
exit 0
在这个脚本中,basename $0用于获取脚本自身的名称,用于在错误提示中显示。
在文件格式转换脚本中的应用
在文件处理任务中,经常需要批量转换文件格式。以下是一个将GIF图像转换为PNG格式的Shell脚本示例:
#!/bin/sh
for file in *.gif; do
if [ ! -f "$file" ]; then
exit
fi
b=$(basename "$file" .gif)
echo "Converting $b.gif to $b.png"
giftopnm "$b.gif" | pnmtopng > "$b.png"
done
在这个脚本中,basename用于去除文件的.gif后缀,生成新的文件名。
注意事项
- 路径结尾斜杠: 如果路径以
/结尾,basename返回空字符串。 - 多后缀处理: 若文件有多个后缀,需多次调用
basename分别删除。 - 系统安装: 默认可能未预装,可通过包管理器(如
apt-get,yum,pacman)安装coreutils包。
通过以上介绍,你可以灵活运用 basename 命令来简化文件路径操作。无论是处理日志文件、转换文件格式,还是其他文件操作任务,basename 都能帮助你写出更简洁、高效的Shell脚本。
热门推荐
棚室番茄主要病虫害的发生与防治,你知道哪些?来这里全面了解下
五味子:现代人减压养生的新选择
五味子:科学证实的护肝良药,熬夜族的肝脏守护者
科技加码 服务配套 定边辣椒“辣”出“智”富路
微波炉加热中药,小心药效打折!
家长评语这样写:三步激发孩子成长动力
从德智体美劳五方面,这样写高中生素养评语
苹果地图离线教程:让你随时随地畅行无忧
高德地图离线地图更新攻略:告别迷路烦恼
一文读懂爆炸极限:可燃气体和粉尘安全防控指南
专业检测守护工业安全,第三方机构助力防范粉尘爆炸
“5·3”事故后,化工行业强化爆炸极限检测与控制
化工安全再敲警钟,精准监测爆炸极限是预防关键
TDLAS激光甲烷检测仪:六大优势保障化工安全升级
国药太极五子衍宗丸非遗技艺亮相厦门
云南元阳红米产业创新经营模式,实现农户增收与生态保护双赢
井冈山红米遇强敌:哈尼梯田红米口感更胜
揭秘“补脑之王”:猪脑花的N种美味做法
三角洲行动:三种途径获取安全箱,新手也能轻松掌握
猪脑真的能补脑吗?专家揭秘
猪脑是健脑神器吗?科学解读猪脑的营养价值与食用禁忌
猪脑:营养价值与食用指南
三角洲行动安全箱获取指南:从新手到高级玩家全覆盖
三角洲行动安全箱获取攻略:5种途径详解
1222万毕业生求职季:5大关键步骤助你脱颖而出
专家解析:办公室人群如何科学应对肩周炎
肩周炎居家康复指南:8种专业锻炼法详解
肝炎患者如何应对乏力和尿黄?
乏力尿黄是肝病预警?专家解读症状与预防要点
社区活动策划攻略:点亮社区活力,凝聚邻里情谊