Relative File Path 相对路径

从当前所在目录算起的文件路径。绝对路径 相对。

特殊符号

符号含义
.当前目录
..上一级目录
~当前用户的 home 目录

例子

假设当前在 /home/shawn/docs/:

notes.md         →  /home/shawn/docs/notes.md
./notes.md       →  同上
../photos/a.jpg  →  /home/shawn/photos/a.jpg
../../etc/passwd →  /etc/passwd
~/projects/      →  /home/shawn/projects/

什么时候用

  • 日常命令 —— cd docs, cp a.txt b.txt
  • 项目内引用 —— 代码里 import './utils'
  • 可移植脚本 —— 不依赖具体位置

安全场景:Path Traversal

# 危险:用户输入直接拼路径
filename = request.args.get('file')
open('/var/www/uploads/' + filename)
 
# 用户传 filename = '../../../etc/passwd'
# 实际打开:/etc/passwd  ← 灾难

防御:永远 validate + 用 absolute path + 检查 prefix,不能信任用户给的相对路径。