Linux系统中,绝对路径是从根目录开始的完整路径,即以'\'开头,相对路径是从当前工作目录开始的路径,以'.'、'..'或当前目录的子目录名开始。某用户便用'cd' 相对路径"的指令来切换工作目录,假设其使用的相对路径包含如下部分:
一个点'.'表示当前目录;
两个点'..'表示上一级目录,根目录的上一级仍然是根目录;
斜杠'/'用于分割目录,连续的多个斜杠等价于单个斜杠;
在Linux系统中,用户通过cd
命令来切换工作目录。给定一个当前工作目录的绝对路径和一个相对路径命令,要求输出执行该命令后用户的新工作目录,且以最简洁的绝对路径形式表示,同时还需输出在命令执行过程中经过的最深目录层级数。输入包括当前工作目录的绝对路径和cd
命令的相对路径,输出则包含用户新目录的绝对路径和最深层级数的两个数值。例如,若输入为/home/hello
和cd .././/world/
,则输出为/home/world
和2
,表示最终目录和经过的最深层级数。
使用栈来模拟路径变化是通过利用栈的后进先出(LIFO)特性来实现文件系统的路径导航。首先,将当前路径和目标路径用“/”分割为路径片段,并依次处理。当前路径中的有效目录名依次入栈,表示进入对应的子目录;遇到“..”时,栈顶元素弹出,表示返回上一级目录。对于目标路径的处理,如果是有效目录,则入栈;如果是“..”,则弹出栈顶目录。在操作过程中,栈的最大深度反映了所到达的最大目录层级。