find
再帰的にルートを検索することは可能ですが、指定された深さまでシンボリックリンクパスに入ることはできますかn
?
はい-maxdepth
、しかしこれには通常のディレクトリが含まれていますが、シンボリックリンクの深さだけを制限したいと思います。
答え1
以下を試してください。
$ find -L -maxdepth n -path "/my/path/pattern" -xtype l -print
簡単な説明:
- 指定された深さnまでのみシンボリックリンクを印刷する必要があります。ここで、nは正の整数です。
- オプションは引数より前になければなりません。これは、上記のcmdの書き込み順序が重要であることを意味します。とにかくそうでなければ文句を言うbash
だろう。
--print
がデフォルト値なので、この場合省略してもかまいません。
man
bash v4.4.12ページによると、次の理由で魔法が発生します。
-xtype c
ファイルがシンボリックリンクでない限り、-type と同じです。シンボリックリンクの場合:-Hまたは-Pオプションが指定されている場合は、ファイルがcタイプのファイルへのリンクである場合はtrue、-Lオプションが指定されている場合はcが「l」の場合はtrueです。つまり、シンボリックリンクの場合、-xtype は -type がチェックしないファイル形式をチェックします。
これは私にとって効果的です。