シンボリックリンクをコピーするにはどうすればよいですか?


41

1つのディレクトリ内のファイルへのシンボリックリンクがあります。同じリンクを別のディレクトリに入れたいです。シンボリックリンクをコピーするにはどうすればよいですか?

シンボリックリンクをcpしようとしましたが、これはシンボリックリンク自体ではなく、それが指すファイルをコピーします。


1
cpCentOSのサポート上-Pまたは--no-dereferenceスイッチ?
マナトワーク

@manatwork:ありがとうございます。あなたが答えとしてそれを投稿したい場合、私はそれを受け入れます。
ユーザー

回答:


54

cp -P(大文字のP)を使用して、シンボリックリンクを横断せず、代わりにシンボリックリンクをコピーします。

これは-R、ディレクトリ階層のコピーなど、他のオプションと組み合わせることができます。cp -RLすべてのシンボリックリンクをディレクトリに移動し、cp -RPすべてのシンボリックリンクをそのままコピーします。cp -RUNIXのバリアントに応じて、どちらか一方を実行する場合があります。GNU cp(CentOSにあります)のデフォルトは-Pです。

を使用しても-P、シンボリックリンクのターゲットをコマンドラインのディレクトリにコピーするに/は、末尾にを追加します:cp -RP foo/ barfoo指すディレクトリツリーをコピーします。

GNUはcp便利な持ち-aコンバインそのオプション-R-P-pともう少し。ソースの正確なコピーを(可能な限り)作成し、ディレクトリ階層、シンボリックリンク、アクセス許可、変更時間、およびその他のメタデータを保持します。


3
コピー/移動すると、シンボリックリンクが破損する可能性があることに注意してください(ソースが相対パスへのシンボリックリンクである場合)。
ステファンシャゼル

3
上位または下位のディレクトリに移動している場合、シンボリックリンクの切断を防ぐ方法はありますか?
アンドリューブラウン14年

注:「GNU cp」はgcp、私が使用すると同じものではありません。 gcp -P現在、2019年でも壊れています。(ため息)。
tgm1024

1

この回答をhttps://superuser.com/a/315757/53590でチェックして、CentOSが問題を具体的に取り上げていることを確認してください。質問全体が役立つかもしれませんが、一番下のビットは特にCentOSです。


1
他の人が答えをリストするためにあなたとは異なる順序を選択するかもしれないことに注意してください。それに加えて、順序は時間とともに変わる可能性があります。参照された回答への直接リンクを投稿してください。(その回答の下にある「共有」リンクをクリックし、表示される直接リンクをコピーします。)
manatwork
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.