独自のローカルデータを使用して、別のディレクトリにシンボリックコピーを作成します。

独自のローカルデータを使用して、別のディレクトリにシンボリックコピーを作成します。

fooファイルとディレクトリを含むディレクトリがあります。foo_0311同じファイルを含み、ファイルが変更された場合は、更新を確認する新しいディレクトリをfoo作成しますtouch foo_0311/a.txta.txtfoo

以前は、これを行う方法がありましたが、bashの履歴が消えて再構築できなくなって失われました。次のように、最初に作成して使用するfoo_0311プロセスが含まれていたことを覚えていますln

mkdir foo_0311
ln ???

しかし、オプションは覚えていません。 IIRC、cdこれを実行してを発行してディレクトリに移動すると、ファイルはls -lリンクとして表示されませんが、変更は元のディレクトリfooに反映されます。foo_0311foo

ベストアンサー1

cpいわゆるリンクツリーの作成を要求できます。

cp -al foo foo_0311

-aすべてを再帰的にコピーし、-lファイルをコピーするのではなく、ファイルへのハードリンクを作成します。

すでに存在する場合はfoo_0311使用する必要があります。

cp -al foo/* foo_0311

代わりに。

これにより、シンボリックリンクの代わりにハードリンクが生成されるため、出力には->表示されませんls -l(ただし、22番目の列のおかげで見つけることができます)。両方のディレクトリのいずれかで作成された新しいファイルは別のディレクトリには表示されませんが、あるディレクトリで編集したファイルは別のディレクトリに表示されます。をする実際にはその場で修正されます。 (Emacsのようなエディタは新しいファイルを作成し、それを所定の位置に移動してそれを破りますが、実際には書き込み中にコピー形式を許可するので、ツリーをリンクするのに非常に便利です...)

おすすめ記事