Ich habe ein Verzeichnis, das eine Reihe anderer Ordner enthält, die CoffeeScript / JavaScript-Dateien enthalten. Ich bin in der Lage, die CoffeeScript-Dateien in einen neuen Ordner mit der gleichen Ordnerstruktur zu kompilieren.
Ich möchte lediglich alle * .js-Dateien im Quellordner rekursiv in den Zielordner kopieren. Ich möchte auch keine Dateien überschreiben, die bereits im Zielordner vorhanden sind. Irgendwelche Gedanken darüber, wie dies erreicht werden kann?
Ich habe versucht, cp -n source/**.js desination/
und zu verwenden, cp -Rn source/**.js desination/
nachdem ich mir eine ähnliche Frage angesehen habe, aber es scheint nicht zu funktionieren.
Irgendeine Idee, wie das erreicht werden kann?
linux
file-transfer
cp
AlbertEngelB
quelle
quelle
Antworten:
Du könntest rsync benutzen (es kopiert auch lokal)
-r
in Verzeichnisse zu rekursieren,--ignore-existing
im Ziel vorhandene Dateien zu ignorieren,include
undexclude
bedeuten: Alle Verzeichnisse einschließen, Alle * .js-Dateien einschließen, den Rest ausschließen. Das erste Include wird benötigt, andernfalls schließt das endgültige Exclude auch Verzeichnisse aus, bevor deren Inhalt gescannt wird.Schließlich können Sie ein hinzufügen,
-P
wenn Sie den Fortschritt verfolgen möchten, ein,--list-only
wenn Sie sehen möchten, was kopiert werden soll, ohne tatsächlich zu kopieren, und ein,-t
wenn Sie die Zeitstempel beibehalten möchten.Dies ist nicht verwandt, aber ich habe kürzlich den Befehl rsync gelernt, als ich 15 Jahre Dokumente von einer Partition auf eine andere verschoben habe. Ich war mir sicher, dass meine Dateien dort waren, löschte dann die alte Partition und legte ein paar andere Sachen hinein. Später stellte ich fest, dass ich alle Zeitstempel verloren hatte und entdeckte die -t-Flagge. Ich wollte nur meine Not mitteilen: '(
quelle
rsync
anscheinend ist die Bombe.Dies ist auch mit cp möglich. Siehe hier:
xxx = Quelle
JJJ = Ziel
v = ausführlich
n = kein Clobber (kein Überschreiben)
p = Berechtigungen beibehalten
r = rekursiv
quelle
Wenn Sie sich die
-n
Handbuchseiten ansehen, möchten Sie anscheinend die Option.quelle
Meine Distribution hatte keinen Clobber zur Verfügung, also:
xxx = Quelle
JJJ = Ziel
v = ausführlich
i = interaktiv (Aufforderung zum Überschreiben) | Deshalb steht vor dem Befehl "echo n |"
p = Berechtigungen beibehalten
r = rekursiv
quelle