cp -R
bashコマンドの実行方法とbashコマンドの実行方法は本当に混乱しています。POSIXの言葉はどうなりますか?
posixの定義を考えると、cp -R srcDir existingDestDir
結果は次のようになります。コンテンツ代わりに、shのbashとcshの実装はそれを既存のDestDirにコピーしますsrcDir
。existingDestDir
srcDir
posix cp -R定義の関連部分:
各 source_file に対して次の手順を実行する必要があります。
(...)
2. source_fileがディレクトリタイプの場合は、次の手順を実行する必要があります。
(...)
F. source_fileディレクトリ内のファイルは、ここにリストされている4つのステップ(1〜4)に従って、そのファイルをsource_filesとして使用してdest_fileディレクトリにコピーする必要があります。
誰もが私のためにこの問題を解決できればとても感謝します。
ベストアンサー1
POSIXドキュメントで追加の段落を見逃しました。
3番目の要約形式(
cp -R [-H|-L|-P] [-fip] source_file... target
)は、-Rオプションを指定した2つ以上のオペランドで表されます。 cpユーティリティは、各source_fileのファイル階層内の各ファイルを次の名前の宛先パスにコピーする必要があります。
- targetが存在し、既存のディレクトリの名前を指定する場合、ファイル階層内の各ファイルに対応するターゲットパス名は、target、単一
<slash>
文字(targetで終わらない場合<slash>
)、およびそのディレクトリへのファイルパス名の関連付けでなければなりません。 。 source_fileを含むディレクトリ。
あなたの場合
cp -R srcDir existingDestDir
「source_file」はsrcDir
、「target」はですexistingDestDir
。その段落で、「ファイル階層内の各ファイルのターゲットパス」は、表示されるexistingDestDir/srcDir
動作を説明します。