Ubuntuでは、Unionfsやaufsなしで2つのフォルダを仮想的にマージする方法はありますか?

Ubuntuでは、Unionfsやaufsなしで2つのフォルダを仮想的にマージする方法はありますか?

変更できない動作中のソース管理システムがあり、不幸な場所に多くのファイルが散在しています。私のIDEは、これらのフォルダが統合された場所にあることを望みます。通常、すべてをシンボリックリンクにリンクしますが、より悪いことは、一部のフォルダを再帰的にマージする必要があるということです。重複するファイル名はないと約束します。しかし、私たちは私が自分で扱うことができるよりも何千ものファイルについて話しています。

私はUnionfsとaufsを調べてみましたが、これはエンタープライズシステムなので、カーネルの修正は必要ありません(このwang chung "Start"ドキュメントは言うまでもありません)。

別の方法がありますか?

ベストアンサー1

-sどのツールを使用しているか、シンボリックリンクとどのように機能するかはわかりませんが、シンボリックリンク(または必要に応じてハードリンク)を使用してオプション(または必要に応じてハードリンク)をcp使用して-lツリー全体を自動的に「コピー」できます。 )。


次の例を見てみましょう。


├── 1
│ ├── s -> x
│ ├── x
│ ├── y
│ └── z
│ └── 1
└── 2
    ├──一つ
    │ └── 2
    ├── ㄴ
    └── ㄷ

現在のディレクトリにシンボリックリンク1/ファイルを配置するには、次のようにします。2/

cp -ans "$PWD/1/"* 2/

これで、2/次のようになります。


...
└── 2
    ├──一つ
    │ └── 2
    ├── ㄴ
    ├──c
    ├── s -> /home/przemoc/links/1/s
    ├── x -> /home/przemoc/links/1/x
    ├── y -> /home/przemoc/links/1/y
    └── ズ
        └── 1 -> /home/przemoc/links/1/z/1

使用されたオプションの説明cp

  • -aまたは、--archive
    属性、リンク、およびコピーディレクトリ(実際にはエイリアス-dR --preserve=all)を再帰的に保存します。
  • -nまたは--no-clobber
    既存のファイルの上書きを防ぐ
  • -sまたは、--symbolic-link
    リテラルコピーの代わりにシンボリックリンクを作成します。

この場合、「現在のディレクトリでは相対シンボリックリンクのみを生成できます」$PWDので、ソースファイルパスは絶対パスでなければなりません(これが私がこのパスを使用した理由です)。cp

おすすめ記事