Unixでシンボリックリンクを相対パスでコピーする方法は?


0

このフォルダー/full/path/sourceFolderには次のファイルがあります。

full/path/sourceFolder/fileA /full/path/sourceFolder/copyA -> fileA /full/path/sourceFolder/copyB

シンボリックリンクは同じフォルダー内のファイルを指し、フルパスを使用せず、リンクへの相対パスに依存していることがわかります。

ここで、sourceFolderのcopy *という名前のすべてのファイルをdestinationFolderにコピーするコピーコマンドが必要です。ファイルcopyAをコピーすると、symlinkのソース、つまりfileAがコピーされますが、copyAという名前は保持されます。copyコマンドは、ファイルcopyBをコピーする場合にも機能するはずです。

これはできますか?

私はこれらのコマンドを試しましたが、ほとんどが私の参照が相対的であるため、動作しません:

cp -rf --preserve=links /full/path/sourceFolder/copy* /target/path/ cp -RP /full/path/sourceFolder/copy* /target/path/ cp -Hrf /full/path/sourceFolder/copy* /target/path/ cp -Lrf /full/path/sourceFolder/copy* /target/path/

私はアイデアを使い果たしています、これを達成する最もエレガントな方法は何ですか?


あなたの例を修正できますか?時にはを含めsourceFolder、時には含めません。また、あなたが望む結果を示しますか?cp path1/* path2/私にとっては、path1のシンボリックリンクがpath2の通常のファイルにコピーされます。
ジョーP

1
行の先頭に4つのスペースを使用すると、多くの `文字を使用するよりもコーディングのブロックにとって簡単です。
ジョーP

これはやりたくないことのように思えます。私は、コピーが壊れたリンクを作成し、ターゲットがコピーされるときに解決されるという要件を期待しています。このような動作が必要な場合は、ハードリンクを使用してください。
AFH

パスを修正
...-rrlamichhane

問題を再現できません。cp /full/path/sourceFolder/copy* /target/path/誤解しない限り、私にとっては平易な作品です。結果のファイルは、名前copyAcopyB。私のテストベッドはUbuntu 16.04.2 LTSです。
カミルマシオロウスキ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.