如何衡量一个文件系统路径的深度?(How to measure the depth of a fil

2019-10-24 00:58发布

我正在寻找一种方式来做到这一点在命令行上,因为这是不太难的任务JavaPython

就像是:

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

这个问题是功能上等同于“有没有一种简单的方法来计算一个文件名斜线的数量?”

Answer 1:

定义一个measure_depth功能:

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

然后,按如下方式使用它:

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


Answer 2:

你可以这样做

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

它为您提供了一个额外的一个,所以它周围的“哈克”的方式将

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

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


Answer 3:

使用realpath计算的斜线,以避免高估的如前/home/user/../user/../user/../user/dir/将被转换为/home/user/dir

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


文章来源: How to measure the depth of a file system path?