Použijte rsync
. Bude synchronizovat adresáře v jednom směru. Pokud tedy chcete aktualizovat old
složka se vším z new
, ale ponechte si to, co tam je, použijte:
rsync -avh --dry-run /path/to/new/ /path/to/old/
Tím se v první instanci pouze vypíše seznam souborů, které budou přeneseny. V tom případě:Vše, co se nachází v new
bude zkopírován do old
, pokud už tam není. Vše v old
zůstane tak, jak je.
Pokud se vám to zdá v pořádku, odstraňte --dry-run
argument pro jejich skutečné předání.
-avh
příznaky pouze povolí režim archivace (který zachová časová razítka atd.), výřečnost a velikosti souborů čitelné pro člověka. Z cíle nebude nic odstraněno, pokud nezadáte --delete
vlajka. Podívejte se na man rsync
pro více informací.
rsync by zde pravděpodobně byla lepší volba. Je to stejně jednoduché jako rsync -a subdir/ ./. lepší řešení najdete v této odpovědi unix.stackexchage
použijte -f
s cp
příkaz
cp -fR /source/files /dest
potlačit cp to přepsat" výzvu..
Chcete-li přepsat alias cp, můžete jej jednoduše uzavřít do uvozovek:
'cp' -rf ./source/* /destination/
pro více informací navštivte tyto odkazy:
http://www.wallpaperama.com/forums/cp-command-problems-forcing-overwrite-using-cp-command-t5685.html
http://bytes.com/topic/unix/answers/865372-force-cp-overwrite-existing-directory