• ベストアンサー

シンボリックリンクからの被参照を調べたい

サーバー上の要らなくなったディレクトリを削除しようと思っています。 ただ、その配下の階層のどこかに、他からシンボリックリンクで参照されているファイルやフォルダがあるかもしれません。 そういう状況の有無を手軽に調べる方法はあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

どのシンボリックリンクが参照しているか分からなくても良いなら、 こんな感じでできます。 find / -type l -exec readlink {} \; | grep -cFx <検索対象のファイル> →参照されている数を表示します。 どのシンボリックリンクが参照しているか分かる必要があるなら、 こんな感じでできます。 find / -type l | while read LINK; do readlink "$LINK" | grep -Fx <検索対象のファイル> >/dev/null && echo "$LINK" done

spacious2
質問者

お礼

ご回答ありがとうございます。 頂いたアドバイスのように、一発で調べる方法を知りたいと思っていました。 ただ、いただいたアドバイスの最初のものを試しましたが、私の打ち込み方が悪かったのか、うまく行きませんでした。 ご回答いただいたお二人のものを合わせた感じで find ~/www/ -type l -ls | grep -E '\->.+/dirName/.+' とやってみたところ、消したいディレクトリ(dirName)配下のファイルやフォルダを参照先にしたシンボリックリンクがリストアップされました。 ただし、消したいディレクトリと同名のディレクトリが他の場所に存在する場合、そのディレクトリ配下のものを参照するものもリストアップされると思います。が、ここまで出来ればあとはなんとかなります。 ありがとうございました。

spacious2
質問者

補足

望んでいる方向の内容をご回答いただいたのでベストアンサーとさせていただきます。

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

多分ファイル自体はどこからシンボリックリンクされているかは知らないと思いますので、 まずシンボリックリンクを全体から探します。 find / -type l -ls でシンボリックリンクファイルとリンク先が出力されます。 それをもとにリンクされているか探せます。

spacious2
質問者

お礼

ありがとうございました! この方法を頼りに探せる範囲内の数のシンボリックリンクでした。 今回削除したいディレクトリ内のファイルやフォルダを参照するシンボリックリンクはありませんでした。

関連するQ&A

  • エクセルXPですが、参照がどうもうまくいきません、、?

    エクセルXPですが、参照がどうもうまくいきません、、? フォルダA、フォルダB、フォルダC、と有りまして(それぞれのフォルダ内にはエクセルファイルが格納されています、そして、それぞれ、参照、リンク関係にあります)、この3個のフォルダをマイドキュメントに保存していました。 (このときは、きちんと、リンクや参照もうまくいっていました。)ところが、この3個のフォルダに更に、上の階層?にフォルダあ を作りました。 そしたら、その後、フォルダA内のエクセルファイルを開くと、リンクの継続?リンクの?というダイアログが出てきて、リンクの張りなおし?を求めてきました。 リンクのエラー、更新など、何かよくわかりません。 どうすればいいのでしょうか? 数式バーで、個々に書き換えをしないとだめなのでしょうか?(すごい数であきれてしまいました) すいません、良き対処方法がございましたらご教示ください。

  • ファイルサーバのディレクトリ変更でリンク切れを救済する方法

    ファイルサーバのディレクトリ変更でリンク切れを救済する方法を探しています。 例えば、\\hogehoge\hahaha\nazenaze\folder01 とあったフォルダを二つ上の階層に移動させた場合、上記リンクをクリックしたら自動でリダイレクトされて\\hogehoge\hahahaを表示させたいのです。 設定方法を教えてください。 なお、OSはWin2003です。

  • シンボリックリンクについて

    OSはRedhat5です。 シンボリックリンクの作成がうまくいきません。 実体がある作業ディレクトリ上でシンボリックリンクを作成すると参照できるのですが、 作業ディレクトリ以外に作成すると作成できるのですが、参照しようとすると「シンボリックリンクの階層が多すぎます」と出てきます。 こちらの質問コーナーの「質問番号:502147」にも同様の質問がされており、 自分自身へのシンボリックシンクを張ってたりしませんか? と回答されていますがよく意味がわからない状態です。 お手数ですがご教授頂けると助かります。

  • シンボリックリンク作成のバッチファイル

    親フォルダーに、aフォルダーとbフォルダーが入っています。 aフォルダー配下には、xフォルダーがあり、その中には複数のテキストファイルが入っています。 parent\a\x\test.txt parent\b\ 以下の様なバッチファイルを「送る」に登録しました。 @echo off rem 選択ディレクトリ配下のxディレクトリに移動 cd /D %1\x\ rem カレントディレクトリにあるすべてのファイルを、bディレクトリにコピー for %%i in (*.*) do ( copy "%%i" "..\..\b\" ) これにより、aフォルダーを選択してバッチファイルを実行すると、xフォルダー配下のテキストファイルがbフォルダーの中にコピーされることは確認しました。 ここで、コピーではなく、シンボリックリンク(mklink)を作成したいのですが、引数をどのように設定すればよいでしょうか。いろいろ試しましたがうまくいきませんでした。 ご教示よろしくお願いします。

  • IIS5の仮想ディレクトリが「ディレクトリの参照をチェック」しても表示されない

    Windows 2000 Serverに付属しているIISを利用し、WebサーバとFTPサーバを構築しようと思っています。 その際、Webサーバの方で、あるフォルダの下に仮想ディレクトリを作成しました。 例えば、サーバのローカルルートパスが C:\issfolder\ だとして、その下に「test」というフォルダを作成し、 C:\issfolder\test というフォルダがあるとします。 http://サーバアドレス/test/ で表示した場合、ISSの設定より各フォルダのプロパティにて"ディレクトリの参照"という項目にチェックを入れてあれば、「test」というフォルダの下に存在する通常のフォルダやファイルは表示されると思います。しかし、「test」のフォルダの下に仮想ディレクトリを作成した場合、そのディレクトリの参照の一覧に仮想ディレクトリのフォルダが表示されません。 どうやらその仮想ディレクトリの名前にあたるパスを直打ちすると表示がされるようなのですが、「test」フォルダ下には相変わらず表示される気配はないようです。 同様のことがIISのFTPサーバでの仮想ディレクトリにも言えるようでどうにかして仮想ディレクトリも上位ディレクトリの"ディレクトリの参照"で表示させることが出来ないか悩んでいます。 何か方法はございますでしょうか? よろしくお願いします。

  • LinuxのシンボリックリンクをMacで開きたい。

    LinuxのシンボリックリンクをMacで開きたい。 Fedora12を使用している初心者です。御教授ください。 /home/userディレクトリ内に、/var/www/htmlディレクトリのシンボリックリンクを作成し、これをSamba接続したMac OS10.5.5から参照しようとすると、ディレクトリではなくファイルとして見え、フォルダを開くことができませんでした。 そこで、smb.conf内にunix extention = noの記述を加えたところ、フォルダとして認識されるようになったのですが、中身は空の状態です。中身ファイルの所有権を777に変更してみたりもしたのですがダメでした。 対処方法をお教え下さい。

  • サーバ内のファイルがリンクされているページを検索

    ホームページの管理を引き継いだ者です。 ホームページサーバ内にアップ日が古いPDFファイルがあります。 リンクされているページ自体が削除されている可能性が高いので、もしどこのページにもリンクされていないならサーバから削除したいと思っています。 サーバ上のリンクされているHTMLファイルの有無を検索する方法はありますか? ※HTMLファイルは、サーバ上にしかありません。 ※PDFファイル名で検索をかけたらPDFファイルそのものがヒットしてしまい、かつリンクされているページがあるファイルも同様の結果でした。

    • ベストアンサー
    • HTML
  • Linuxのリンクファイル制限について

    Linux環境でリンクファイルの制限でファイルが参照できないエラーが発生しますが、回避方法などありますか? <エラーメッセージ> シンボリックリンクの階層が多すぎます.

  • ホームページビルダーでリンクの一括変更

    ホームページビルダー7.0.1.0を使用しています。 サイト内の全てのページにコンテンツメニューのリンクを貼っています。 このメニューのリンクはURLをそのまま指定しています。 今リニュ作業中で、サーバー内にディレクトリを作って仮にソコにアップしているのですが コンテンツメニューのリンクのURLは現在、このディレクトリの中を指定しています。 このリニュ作業が終ると、このフォルダの中身を1階層上のディレクトリにアップするのですが その際、全ページのコンテンツメニューのURLを1階層上のURLに変更しなくてはいけません。 ビルダーでサイト内の全ページの同じリンクを一括で変更してくれる機能はありませんか? 宜しくお願いします。

  • PDF→PDFのリンクが、ローカルに落とすと切れる

    狐につままれた気分です。 PDFファイル内から別のPDFファイルへリンクをはった時、サーバ上ではリンクしているのに、サーバ上のデータをフォルダーごとローカルに落とすと、リンクが切れてしまいます。 (ファイル名やディレクトリ構成はそのままなのに) しかも、この現象はIEのブラウザ内で見たときのみで、PDFファイルをダブルクリックして見たときはリンクはつながっています。 なぜこのようなことになるのでしょうか。教えてください。