文章总结: 文档介绍了一个用于获取文件绝对路径的Shell函数lsw的实现方法,支持相对路径和多个文件参数处理,兼容macOS系统。核心方案优先使用realpath命令,若无该命令则采用cd+pwd的回退方案,包含错误处理机制。文档提供了完整函数代码、使用示例和持久化配置建议。 综合评分: 75 文章分类: 安全工具,应用安全,安全开发
linux 下获取文件绝对路径
原创
hyang0 hyang0
生有可恋
2026年5月16日 08:00 湖北
在小说阅读器读本章
去阅读
AI 聊天对话:帮我实现以下需求。实现一个Shell函数。这个函数的作用是显示当前文件的完整路径。函数名: lsw ,函数接受一个或多个文件名作为入参,返回文件的完整路径。
AI:这是一个简单实用的 Shell 函数,macOS 兼容:
lsw() { local target for target in "$@"; do # realpath 在 macOS 上可用;若无则回退到 cd+pwd if command -v realpath &>/dev/null; then realpath "$target" else # 回退方案 local dir file dir=$(cd "$(dirname "$target")" 2>/dev/null && pwd) || { echo "lsw: $target: No such file or directory" >&2; continue; } file=$(basename "$target") [[ "$file" == "." || "$file" == "$dir" ]] && echo "$dir" || echo "$dir/$file" fi done}
用法示例:
lsw myfile.txt # 输出:/Users/apple/myfile.txtlsw ./src/main.py # 输出:/Users/apple/src/main.pylsw file1.txt file2.py # 分别输出两个文件的完整路径lsw /etc/hosts # 输出:/etc/hosts(已是绝对路径,原样返回)
要点:
- 支持相对路径、
./、../等各种写法 - 多文件参数逐行输出
- 文件不存在时会在 stderr 报错并跳过
- macOS 自带
realpath,兼容无压力
要持久化的话,把函数加到 ~/.zshrc 里即可。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:生有可恋 hyang0 hyang0《linux 下获取文件绝对路径》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论