如何区分相对/绝对路径?mkdir命令路径类型确认与实现
如何区分相对路径与绝对路径?
我来帮你理清楚这两个路径的核心区别,再解答你关于mkdir命令的疑问~
核心区别
- 绝对路径:从文件系统的最根目录(Linux/Unix系统里的
/)出发的完整路径,相当于给文件/文件夹标了个“全局定位”,不管你当前在哪个目录下,用它都能精准找到目标位置。比如/home/yourname/notes/todo.md,不管你在/tmp还是/opt,这个路径指向的都是同一个文件。 - 相对路径:以你当前所在的工作目录为起点的路径,相当于“从你现在站的地方出发怎么走”。比如你现在在
/home/yourname,那么notes/todo.md就是相对路径,等价于绝对路径/home/yourname/notes/todo.md;但如果你切换到/home目录,这个相对路径就会指向/home/notes/todo.md了。另外,.代表当前目录,..代表上级目录,也是相对路径的常用组成部分,比如../downloads就是当前目录的上一级文件夹里的downloads目录。
你的mkdir -p命令路径分析
先看你写的命令:
mkdir -p mytree/{dir1/{dir4,dir5/dir6},dir3,dir2}
这里的mytree/...是相对路径,因为它开头没有/,所以会在你当前的工作目录下创建这个目录结构。
如果想实现绝对路径操作(不用cd到目标目录),只需要把路径改成从根目录/开始的绝对路径就行。比如你想在/home/yourname/projects目录下创建这个结构,命令就改成:
mkdir -p /home/yourname/projects/mytree/{dir1/{dir4,dir5/dir6},dir3,dir2}
这样不管你当前在哪个目录下执行这个命令,都会在指定的绝对路径下生成对应的目录树,完全不需要提前cd过去。
小提示:如果不确定自己当前的绝对路径,可以用pwd命令查看,它会输出你当前所在目录的完整绝对路径,方便你构造目标路径。
内容的提问来源于stack exchange,提问作者theprincess




