不幸な場所に大量のファイルを分散させる変更できないソース管理システムが稼働しています。私のIDEは、これらのフォルダーが単一の統一された場所にあることを期待しています。通常はすべてをシンボリックリンクするだけですが、さらに悪いことに、一部のフォルダーは再帰的にマージする必要があります。重複するファイル名はありませんが、私が手作業で行うよりも多くの数千のファイルについて話しています。
私はunionfsとaufsを調べましたが、それは企業のマシンなので、カーネルをいじる必要はありません(これらのwang chungの「はじめに」のドキュメントは言うまでもありません)。
これを行う別の方法はありますか?
使用しているツールとそのシンボリックリンクでの動作はわかりませんが、cp
(またはハードリンクの場合は-s
)の-l
オプションを使用して、シンボリックリンク(または必要に応じてハードリンク)を使用してツリー全体を自動的に「コピー」できます。 。
以下の例を見てみましょう。
。 ├──1 │├──s-> x │├──x │├──y │└──z │└──1 └──2 ├──a │└──2 ├──b └──c
1/
ファイルを現在のディレクトリの2/
にシンボリックリンクしたい場合は、次のようにするだけです。
cp -ans "$PWD/1/"* 2/
これで、2/
は次のようになります。
。 ... └──2 ├──a │└──2 ├── b ├──c ├──s-> /home/przemoc/links/1/s ├──x->/home/przemoc/links/1 /x ├──y->/home/przemoc/links/1/y └──z └──1->/home/przemoc/links/1/z/1
使用されたcp
オプションの説明:
-a
または--archive
-dR --preserve=all
のエイリアスです)-n
または--no-clobber
-s
または--symbolic-link
そのような場合、ソースファイルパスは絶対パスである必要があります(そのため、$PWD
を使用しました)。これは、cp
が「現在のディレクトリでのみ相対シンボリックリンクを作成できる」ためです。