
我想將目錄中的部分或全部檔案複製test/A/
到目錄test/B/
,但不複製目錄 A 本身。
我嘗試了該命令cp -R test/A/ test/B
,但它也複製了目錄和檔案並變成test/B/A/
...
答案1
當您指定 時test/A/
,您告訴 Bash 複製目錄本身。
若要僅複製目錄的內容,請使用*
全球:
cp -R test/A/* test/B
在這裡,*
將匹配 A 中的所有文件,除了有點前綴的隱藏文件,例如.htaccess
.要將這些內容也包含在*
,shopt -s dotglob
之前調用。
答案2
為了在本地或遠端獲得相同的副本,我更rsync
喜歡cp
.這使您可以更好地控制應在來源或目標上複製甚至刪除的內容(如果需要)。順便修復了隱藏檔案(又稱.*
)的問題。基本用法就像使用一樣簡單cp
。
複製目錄A
及其內容以B
使用:
rsync -va test/A test/B
複製目錄內容A
(包括隱藏檔案)以B
使用:
rsync -va test/A/ test/B
如果 B 不存在則創建