Můžete použít rsync (provádí také místní kopírování)
rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
-r
pro návrat do adresářů,--ignore-existing
ignorovat existující soubory v cíli,include
aexclude
filtry znamenají:zahrnout všechny adresáře, zahrnout všechny soubory *.js, vyloučit zbytek; je potřeba první zahrnout, jinak poslední vyloučení vyloučí také adresáře před kontrolou jejich obsahu.
Nakonec můžete přidat -P
pokud chcete sledovat průběh, --list-only
pokud chcete vidět, co by to zkopírovalo bez skutečného kopírování, a -t
chcete-li zachovat časová razítka.
To nesouvisí, ale příkaz rsync jsem se naučil nedávno, když jsem přesunul 15 let dokumentů z jednoho oddílu na druhý. S jistotou, že tam jsou moje soubory, jsem pak vymazal starý oddíl a dal tam nějaké jiné věci; Později jsem si uvědomil, že jsem ztratil všechna časová razítka a objevil jsem příznak -t. Jen jsem se chtěl podělit o své trápení :'(
Toho lze také dosáhnout pomocí cp. Viz zde:
sudo cp -vnpr /xxx/* /yyy
xxx =zdroj
yyy =cíl
v =podrobný
n =no clobber (žádné přepsání)
p =zachovat oprávnění
r =rekurzivní
Při pohledu na manuálové stránky se zdá, že chcete -n
možnost.
-n, --no-clobber
do not overwrite an existing file (overrides the previous -i option)