シンボリックリンクのみを含む階層のディレクトリリストを取得する

シンボリックリンクのみを含む階層のディレクトリリストを取得する

シンボリックリンクのみを含む階層のディレクトリのリストを取得するために使用できるさまざまなツールがあることはわかっていますが、ソリューションを自分で作成するのに十分な技術がありません。

個人的にこれを行うには、tcshを使用する必要があります。

私が持っているもう1つの問題は、同じことを行いますが、少なくとも1つのシンボリックリンクと少なくとも1つの他のファイルを含むディレクトリのみを一覧表示する方法です。

ベストアンサー1

シンボリックリンクのみを持つディレクトリは、ディレクトリがないかのようにディレクトリツリーに葉を残すため、シンボリックリンクではありません。

Solarisでは、少なくともUFSファイルとZFSファイルシステムの場合、3つ未満のリンクを持つディレクトリを検索できる必要があります。

find . -type d -links -3 -exec sh -c 'ls -Anq "$0" | awk "NR==1{next};/^[^l]/{exit 1};END{if (NR<2) {exit 1}}"' {} \; -print

少なくとも1つのシンボリックリンクと1つの非記号リンクを持つディレクトリの場合は、各ディレクトリを確認する必要があります。

find . -type d -exec sh -c 'ls -Anq "$0" | awk "NR==1{next};/^[^l]/{nonlink++};/^l/{link++}; END{exit !(link&&nonlink)}"' {} \; -print

おすすめ記事