命令
find ~ -maxdepth 2 -mindepth 2
不起作用还有其他解决方案吗?
嗯,好吧,我找到了解决方案:
find ~ -maxdepth 1 -links 4 -type d
对于那些试图解决这个问题的人来说
答案1
find . -type d -exec sh -c '
for pathname do
set -- "$pathname"/*/
[ "$#" -eq 2 ] && printf "%s\n" "$pathname"
done' sh {} +
上面的命令将打印当前目录下包含两个子目录的所有目录的路径名。
内联脚本批量sh -c
获取找到的目录的路径名find
,并将迭代每个批次,一次一个目录。
对于每个目录$pathname
,shell glob"$pathname"/*/
都会展开。此模式将扩展到直接位于其下的所有子目录的所有路径名$pathname
(或者如果没有子目录,则将保持未扩展状态)。该参数$#
将包含模式扩展到的项目数,如果是两个,则打印目录的路径。
以上不会计算隐藏目录。为此,请bash
在激活其dotglob
shell 选项的情况下使用:
find . -type d -exec bash -O dotglob -c '
for pathname do
set -- "$pathname"/*/
[ "$#" -eq 2 ] && printf "%s\n" "$pathname"
done' bash {} +
有关的:
答案2
stat
可用的?利用硬链接数量为 2(父目录链接加..
链接)加上子目录计数,尝试
stat -c"%n %F %h" * | sed -n '/directory 4/ s///p;'