findを使用してシンボリックリンクをn回だけ通過しますか?

findを使用してシンボリックリンクをn回だけ通過しますか?

find再帰的にルートを検索することは可能ですが、指定された深さまでシンボリックリンクパスに入ることはできますかn

はい-maxdepth、しかしこれには通常のディレクトリが含まれていますが、シンボリックリンクの深さだけを制限したいと思います。

ベストアンサー1

以下を試してください。

$ find -L -maxdepth n -path "/my/path/pattern" -xtype l -print

簡単な説明:
- 指定された深さnまでのみシンボリックリンクを印刷する必要があります。ここで、nは正の整数です。
- オプションは引数より前になければなりません。これは、上記のcmdの書き込み順序が重要であることを意味します。とにかくそうでなければ文句を言うbashだろう。
--printがデフォルト値なので、この場合省略してもかまいません。

manbash v4.4.12ページによると、次の理由で魔法が発生します。

-xtype c
ファイルがシンボリックリンクでない限り、-type と同じです。シンボリックリンクの場合:-Hまたは-Pオプションが指定されている場合は、ファイルがcタイプのファイルへのリンクである場合はtrue、-Lオプションが指定されている場合はcが「l」の場合はtrueです。つまり、シンボリックリンクの場合、-xtype は -type がチェックしないファイル形式をチェックします。

これは私にとって効果的です。

おすすめ記事