You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Shell脚本获取当前路径的深度?示例返回值为6

获取当前路径深度的Shell脚本实现

嘿,刚好能帮你解决这个问题!咱们先对齐一下需求:你要的是当前路径执行脚本后返回深度6,意味着你所在的路径应该是类似 /dir1/dir2/dir3/dir4/dir5/dir6 这样的结构(从根目录往下数6层)。下面分两部分讲怎么实现:

一、手动快速获取当前路径深度

如果你只是想临时查看,直接在终端执行这条命令就行:

pwd | sed 's/\/$//' | tr -cd '/' | wc -c

命令解释:

  • pwd:输出当前所在的绝对路径
  • sed 's/\/$//':移除路径末尾可能存在的斜杠(避免像 /dir1/dir2/ 这种末尾带斜杠的情况导致统计错误)
  • tr -cd '/':只保留路径中的斜杠字符,其他全部删除
  • wc -c:统计保留下来的斜杠数量,这个数量就是路径的深度(比如 /dir1/dir2/dir3/dir4/dir5/dir6 会得到6个斜杠,直接返回6)

二、编写可复用的Shell脚本

把上面的逻辑封装成脚本,方便随时调用:

  1. 创建一个名为path-depth.sh的文件,内容如下:
#!/bin/bash

# 获取当前绝对路径并移除末尾斜杠
current_path=$(pwd | sed 's/\/$//')

# 计算路径深度
depth_count=$(echo "$current_path" | tr -cd '/' | wc -c)

# 输出结果
echo "$depth_count"
  1. 给脚本添加执行权限:
chmod +x path-depth.sh
  1. 在目标路径(比如 /dir1/dir2/dir3/dir4/dir5/dir6)下执行脚本:
./path-depth.sh

执行后就会直接输出6,完全符合你的需求。

额外说明

如果你的路径深度定义和这个不一样(比如认为根目录/的深度是0而不是1),只需要把计算深度的那一行改成:

depth_count=$(( $(echo "$current_path" | tr -cd '/' | wc -c) - 1 ))

这样根目录会返回0,/dir1返回1,以此类推。不过按照你的需求要返回6,默认的逻辑就刚好适用啦。

内容的提问来源于stack exchange,提问作者SFbay007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:24:08