次の構造が与えられた場合:
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」を使用して、特定の数のリンクを持つファイルを検索することもできます。通常、ディレクトリには少なくとも2つのハードリンクがあります。彼らの。エントリは2番目のものです。サブディレクトリがある場合、それぞれに親ディレクトリへの..というハードリンクもあります。。および..ディレクトリエントリは、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
。