文件和目录管理命令 basename
basename 是 Linux 中一个非常简单实用的小工具,用来去掉路径,只保留文件名部分。它还可以顺便去掉文件名的后缀,非常方便。
1. 基本语法
basename [路径] [后缀]
- 路径:文件或目录的完整路径。
- 后缀:可选参数,用来去掉文件名的指定后缀(一般是扩展名)。
2. 最简单用法:去掉路径
basename /home/user/docs/file.txt
输出:
file.txt
这里它直接去掉了 /home/user/docs/
,只保留 file.txt
。
3. 去掉路径并去掉后缀
basename /home/user/docs/file.txt .txt
输出:
file
后面的 .txt
表示要去掉文件名里的这个后缀。
4. 处理目录路径
如果给的是一个目录路径,basename
会直接返回最后一级目录名。
basename /home/user/docs/
输出:
docs
即使路径最后有 /
,它也会自动忽略。
5. 与变量结合使用
经常配合 Shell 变量来提取文件名部分:
file_path="/home/user/docs/file.txt"
basename "$file_path"
输出:
file.txt
去掉后缀:
basename "$file_path" .txt
输出:
file
6. 配合 dirname
使用
basename
只取文件名,dirname
只取路径,两者配合用可以方便拆分完整路径:
path="/home/user/docs/file.txt"
echo "路径: $(dirname "$path")"
echo "文件名: $(basename "$path")"
输出:
路径: /home/user/docs
文件名: file.txt