给出以下结构:
oz123@debian:~/ $ tree .
.
├── a
│ ├── a1
│ ├── a2
│ └── a3
├── a1
│ ├── a11
│ ├── a12
│ └── a31
├── b
│ └── b1
│ ├── b11
│ │ └── b21
│ │ └── b31
│ ├── b12
│ └── b3
└── c
16 directories, 0 files
如何找到所有末端节点?
我发现以下解决方案似乎不错,但是我必须证明没有测试用例会使它失败。
状态的帮助页面-links
:
您也可以使用“ -links”搜索具有一定数量链接的文件。目录通常至少具有两个硬链接;他们的。条目是第二个。如果它们具有子目录,则每个子目录还具有一个指向其父目录的硬链接,称为..。的。除非在find命令行中提及,否则通常不搜索..和..目录条目。
可能的解决方案:
oz123@debian:~/ $ find . -type d -links 2
./a/a2
./a/a3
./a/a1
./c
./a1/a31
./a1/a11
./a1/a12
./b/b1/b12
./b/b1/b3
./b/b1/b11/b21/b31
- 任何人都可以提供更好的解决方案(不使用管道和sed的情况下,它的性能很高...)
- 它可以在任何文件系统上工作吗?
-links 2
技巧更出色的性能。它不会起作用btrfs
。