given the following structure:
oz123@debian:~/ $ tree . . ├── a │ ├── a1 │ ├── a2 │ └── a3 ├── a1 │ ├── a11 │ ├── a12 │ └── a31 ├── b │ └── b1 │ ├── b11 │ │ └── b21 │ │ └── b31 │ ├── b12 │ └── b3 └── c 16 directories, 0 files
How do I find all the end nodes?
I found the following solutions which seems to be good, but I have to proof that there is not test case which will fail it.
The help page of the
You can also search for files that have a certain number of links, with ‘-links’. Directories normally have at least two hard links; their . entry is the second one. If they have subdirectories, each of those also has a hard link called .. to its parent directory. The . and .. directory entries are not normally searched unless they are mentioned on the find command line.
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
- Can anyone provide a better solution (without using pipes and sed, this has be performant ...)
- Will it work on any filesystem?