basename
basename
是一个在 Unix 和 Linux 系统中广泛使用的命令行工具,通常用于提取路径中的文件名部分,去掉目录路径和后缀。在 shell 脚本编程中,它经常用于处理文件路径。
基本用法
提取文件名
basename /path/to/file.txt
输出:
file.txt
去掉文件后缀
basename /path/to/file.txt .txt
输出:
file
在这个例子中,
.txt
是想要去掉的后缀。
示例
假设你有一个脚本 example.sh
,你需要处理一组文件路径以获得文件名,执行某种针对这些文件名的特定操作。可以这样做:
#!/bin/bash
FILE_PATHS=(
"/home/user/documents/report.pdf"
"/home/user/photos/image.jpg"
"/home/user/music/song.mp3"
)
for FILE_PATH in "${FILE_PATHS[@]}"; do
FILE_NAME=$(basename "$FILE_PATH")
echo "Processing file: $FILE_NAME"
# Additional operations using $FILE_NAME
# ...
done
注意事项
basename
不会修改原路径,只是输出最后的文件名部分。- 当提供后缀参数时,
basename
仅剥离匹配的后缀,如果文件名不含该后缀,则保持不变。 basename
是 shell 脚本中常用的基本命令之一,了解怎么使用它可以简化许多与路径相关的操作。
通过结合 dirname
命令,你可以同时分割路径中的目录和文件名部分。希望这对你的 shell 编程有帮助!