特定のディレクトリ内のファイル/ディレクトリを指すすべてのシンボリックリンクを見つける方法

特定のディレクトリ内のファイル/ディレクトリを指すすべてのシンボリックリンクを見つける方法

この問題についてまたはこれに(たとえば)特定のディレクトリ(と呼びます/dir1)を指すシンボリックリンクを見つける方法の解決策を得ることができますが、私は/dir1

このようなディレクトリを削除したいのですが、別のディレクトリ(と呼びます/dir2)に/dir1

また、絶対パスまたは相対パスを使用してこれらのシンボリックリンクを作成した可能性があります。私の唯一の助けは、私が確認したいシンボリックリンクがマウントされたファイルシステムにあることを知ることです/dir2

ベストアンサー1

以下を使用して、すべてのシンボリックリンクを見つけることができます。

find / -type l 

ディスク上の各場所にアクセスするには、rootとして実行する必要があるかもしれません。

これを拡張してリンクへのフルパスを取得し、削除したいターゲットディレクトリにそれらを出力できる必要readlink -fがあります。grep

find / -type l -exec readlink -f {} + | grep -F /dir2

find / -type l -printf '%l\n'取得する相対リンクがターゲット../tmp/xyzディレクトリを指す可能性がありますが、完全に拡張されていないため一致しないため、使用すると機能しません。

おすすめ記事