ホームページ » の仕方 » 1つのファイルを複数のフォルダに同時に表示するにはどうすればよいですか。

    1つのファイルを複数のフォルダに同時に表示するにはどうすればよいですか。

    あなたの仕事のためにセットアップされた多数のフォルダがあり、仕事日の間にそれらすべての中で同じスクリプトファイルを使用する必要があるならば、たくさんのコピーと貼り付けを超えてそれを達成する最も簡単な方法は何ですか?本日のSuperUser Q&A投稿には、イライラした読者のための有益な回答とアドバイスがいくつかあります。.

    本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.

    csaveanuのスクリーンショット提供(Flickr).

    質問

    SuperUserの読者Elliotは、同じファイルが同時に複数のフォルダにあるように見せるための最良の方法を探しています。

    私は50以上のフォルダを持っています。それぞれのフォルダには処理が必要な大量のデータが含まれています。それらのすべては、同じ正確なコードを使用して処理されます。 os.path.dirname(os.path.realpath(ファイル)) ユーザーが手動で編集する必要がないようにpythonスクリプトが配置されているディレクトリを取得するには、ダブルクリックするだけです。.

    スクリプトを各フォルダ内にあるかのように表示し、実際には1か所だけにして、編集できるようにする必要があります。その後、これらの場所のいずれかから実行すると、フォルダパスは正しいです。別の方法としては、マスターを編集してからコードを更新するたびに50以上のフォルダすべてに1つずつフォルダを貼り付けることです。これは非常に面倒でエラーが発生しやすいものです。 Linuxでは、これをシンボリックリンクで設定できますが、Windowsでこれを実行する方法を見つけ出すことはできません。.

    あるいは、一度に1つずつではなく、一度にすべてのターゲットディレクトリにファイルを貼り付ける方法でも同じ結果が得られます。.

    スクリプトファイルを一度に1フォルダずつコピーアンドペーストするのではなく、これを行う方法はありますか?

    答え

    SuperUserの貢献者gronostajが私たちに答えを持っています。

    あなたには必要だ シンボリックリンク または ハードリンク.

    シンボリックリンク (または シンボリックリンク 1つの実際のファイルと複数の参照があります。シンボリックリンクそれに)。彼らはアイコン上にその小さな矢印さえ持っています。ショートカットとは異なり, シンボリックリンク 任意の拡張子を持つことができます.

    ハードリンク ハードドライブ上のファイルをディレクトリツリー内の場所にバインドします。各ファイルには少なくとも1つの ハードリンク, そうでなければ、どのディレクトリにも存在しません。ファイルが複数ある場合 ハードリンク, 元のファイルと他のファイルを区別することはできず、ファイルは物理的に1つの場所にしか存在しません。.

    両方とも限界があります。

    • 一部のソフトウェアはうまく動作しません シンボリックリンク.
    • 元のファイルを削除すると、元のファイルはすべてそのまま残ります。 シンボリックリンク 壊れた.
    • それはいけません ハードリンク フォルダ(ただし、ディレクトリジャンクションを作成することができます。 シンボリックリンク 十分ではありません).
    • クロスパーティションの作成 ハードリンク 不可能です.

    シンボリックリンク 通常は十分です.

    シンボリックリンクまたはハードリンクを作成するには

    1. 特権のあるコマンドラインを起動します。 Windowsキー, タイプ cmd, 次に押す Ctrl + Shift + Enter.

    2. mklinkコマンドを発行します。

    • ファイルのmklink link_name link_target シンボリックリンク
    • フォルダーのmklink / d link_name link_target シンボリックリンク
    • ファイルのmklink / h link_name link_target ハードリンク
    • mklink / j link_name link_target for a ディレクトリジャンクション

    説明に追加するものがありますか?コメントで音を消す。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.