Sie könnten rsync verwenden (es kopiert auch lokal)
rsync -r --ignore-existing --include=*/ --include=*.js --exclude=* source/ destination
-r
um in Verzeichnisse zu rekursieren,--ignore-existing
existierende Dateien im Ziel zu ignorieren,- die
include
undexclude
Filter bedeuten:alle Verzeichnisse einschließen, alle *.js-Dateien einschließen, den Rest ausschließen; Das erste Einschließen wird benötigt, andernfalls schließt das letzte Ausschließen auch Verzeichnisse aus, bevor ihr Inhalt gescannt wird.
Schließlich können Sie einen -P
hinzufügen wenn Sie den Fortschritt sehen möchten, ein --list-only
wenn Sie sehen möchten, was es kopieren würde, ohne tatsächlich zu kopieren, und ein -t
wenn Sie die Zeitstempel beibehalten möchten.
Das hat nichts damit zu tun, aber ich habe den rsync-Befehl kürzlich gelernt, als ich Dokumente aus 15 Jahren von einer Partition auf eine andere verschoben habe. Zuversichtlich, dass meine Dateien dort waren, löschte ich dann die alte Partition und legte andere Sachen hinein; Später wurde mir klar, dass ich alle Zeitstempel verloren hatte und das Flag -t entdeckte. Wollte nur meine Not teilen :'(
Dies ist auch mit cp möglich. Siehe hier:
sudo cp -vnpr /xxx/* /yyy
xxx =Quelle
yyy =Ziel
v =ausführlich
n =kein Clobber (kein Überschreiben)
p =Berechtigungen beibehalten
r =rekursiv
Wenn Sie sich die Manpages ansehen, scheint es, dass Sie den -n
wollen Option.
-n, --no-clobber
do not overwrite an existing file (overrides the previous -i option)