如何测量文件系统路径的深度?

时间:2015-07-20 23:53:17

标签: macos bash command-line terminal

我正在寻找一种在命令行上执行此操作的方法,因为JavaPython中的任务不是太难。

类似的东西:

$ measure_depth /a/b/c/d/e/f
6
$ measure_depth /a
1

这个问题在功能上等同于“有一种简单的方法来计算文件名中的斜杠数吗?”

3 个答案:

答案 0 :(得分:1)

定义measure_depth函数:

measure_depth() { echo "${*#/}" | awk -F/ '{print NF}'; }

然后,按如下方式使用:

$ measure_depth /a/b/c/d/e/f
6
$ measure_depth /a
1

答案 1 :(得分:0)

您可以执行类似

的操作
tr -s "/" "\n" | wc -l

给你一个额外的,所以围绕它的“hacky”方式将是

sed "s/^\///" | tr -s "/" "\n" | wc -l

echo "/a/b/c/d/e/f" | sed "s/^\///" | tr -s "/" "\n" | wc -l
6

答案 2 :(得分:0)

在计算斜杠之前使用realpath以避免过高估计,例如/home/user/../user/../user/../user/dir/将被翻译为/home/user/dir

realpath <dir> | grep -o '/' | wc -l