ファイルをコピーしたいのですが、シンボリック リンクをハード リンク (つまり、実際のファイル) に変換する必要があります。どうすればいいでしょうか?
これが私のコードです(動作しません):
cp -RL ${FROM_DIR} ${TO_DIR}
注意: これは Xcode の目的のためであり、ビルドではシンボリック リンクは許可されません。
ありがとう!
編集:
問題は、最初にファイルを削除する方法にあります。既存のシンボリックリンクは削除されません。
rm -RLf "${FROM_DIR}/*"
答え1
UNIX の実装についてはよく分かりませんcp
が、GNU はcp
デフォルトではシンボリックリンクを保存しません。また、ハードリンクはファイルと同じではありません。デフォルトでは、cp はシンボリックリンクからファイル/ディレクトリを作成します。おそらく、目的には -L オプションは必要ありません。本当に必要な場合は、--no-preserve=links オプションを使用できます。
参照するman cp
:
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all
--no-preserve=ATTR_LIST
don't preserve the specified attributes