Cp
cp -R 的 POSIX 描述
與POSIX 單詞應該發生
cp -R
的情況相比,我對 bash 命令的實現感到非常困惑鑑於 posix 定義,我希望
cp -R srcDir existingDestDir
將 的內容srcDir
複製到existingDestDir
. 而是srcDir
在 sh 的 bash 和 csh 實現中被複製到 existingDestDir 中。posix cp -R 定義的相關部分:
對於每個 source_file,應採取以下步驟:
(…)
2、如果source_file是directory類型,則需要執行以下步驟:
(…)
F。將 source_file 目錄中的文件複製到 dest_file 目錄,執行此處列出的四個步驟(1 到 4),文件為 source_files。
如果有人能為我解決這個問題,我將不勝感激。
您錯過了 POSIX 文件中的一段:
第三種概要形式 (
cp -R [-H|-L|-P] [-fip] source_file... target
) 由兩個或多個指定了 -R 選項的操作數表示。cp 實用程序應將根在每個 source_file 的文件層次結構中的每個文件複製到名為如下的目標路徑:
- 如果目標存在並命名現有目錄,則文件層次結構中每個文件的相應目標路徑的名稱應為目標的串聯,
<slash>
如果目標不以 a 結尾,則為單個字元<slash>
,以及文件相對於文件的路徑名包含 source_file 的目錄。在你的情況下,與
cp -R srcDir existingDestDir
“source_file”是
srcDir
,“target”是existingDestDir
。在該段落中,“文件層次結構中每個文件的目標路徑”變為existingDestDir/srcDir
,這解釋了您所看到的行為。