我正在寻找一种方式来做到这一点在命令行上,因为这是不太难的Java
或Python
任务。如何测量文件系统路径的深度?
喜欢的东西:
$ measure_depth /a/b/c/d/e/f
6
$ measure_depth /a
1
这个问题是功能上等同于“有没有一种简单的方法来计算一个文件名斜线的数量?”
我正在寻找一种方式来做到这一点在命令行上,因为这是不太难的Java
或Python
任务。如何测量文件系统路径的深度?
喜欢的东西:
$ measure_depth /a/b/c/d/e/f
6
$ measure_depth /a
1
这个问题是功能上等同于“有没有一种简单的方法来计算一个文件名斜线的数量?”
定义measure_depth功能:
measure_depth() { echo "${*#/}" | awk -F/ '{print NF}'; }
然后,按如下方式使用它:
$ measure_depth /a/b/c/d/e/f
6
$ measure_depth /a
1
你可以做这样的事情
tr -s "/" "\n" | wc -l
它给你一个额外的一个,所以它周围的 “哈克” 的方式将
sed "s/^\///" | tr -s "/" "\n" | wc -l
echo "https://stackoverflow.com/a/b/c/d/e/f" | sed "s/^\///" | tr -s "/" "\n" | wc -l
6
使用realpath
计数斜线避免高估作为例如前/home/user/../user/../user/../user/dir/
将被转换为/home/user/dir
。
realpath <dir> | grep -o '/' | wc -l
的OP使用OS X不是Linux,由标签指出,和'realpath'默认情况下不存在于OS X也不默认情况下它在一些现代的Linux发行版,例如,Linux Mint的17.1安装和需要手动安装它以这种或那种方式事后。它是GNU的coreutils的一部分,并可以使用自制软件或手动如果安装命令行工具OS X安装。也就是说,John1024的答案是IMO迄今为止最好的答案。 – user3439894
你想测量'measure_depth /'的深度?对于'measure_depth/a /'? – John1024