ファイルやディレクトリの名前を変更または移動しても、シンボリックリンクを有効な状態に保つためのツールを知っている人はいますか?そうでなければ、これが実装するのが難しい明白な理由はありますか?私はa)シンボリックリンクの作成と削除を追跡し、既存のリンクのデータベースを維持します。 b) ファイルシステムオブジェクトの名前変更と移動を追跡し、影響を受けるリンクのデータベースを検索し、自動的に実行できるデーモンを考えています。問題を解決してください。乾杯。
答え1
このfind
コマンドラインには、ファイルが指さないすべてのシンボリックリンクが一覧表示されます。
# Ask `find` to walk files in some/dir in this manner:
# -L Follow symlinks. Use symlink it self if its can't be followed
# -type l Only care about symlinks. So we only get failed symlinks from -L.
# -ls list current file in `ls -dils` format.
find -L some/dir -type l -ls
これを使用して、壊れたリンクや権限の不足のために「あなた」が読み取れないファイルへのリンクを見つけることができます。したがって、十分な権限を持つユーザーがこのコマンドを実行してください。