2017-11-20 1 views
3

Ich muss Unterverzeichnisse namens "Kind" finden und kopieren Sie die Dateien in diesen Ordnern in ein neues Verzeichnis. Kann es nicht zur Arbeit bringen.Finden Ordner nach Name, dann kopieren Sie Dateien

Ich kann so weit wie das Finden der Unterverzeichnisse, aber ich kann nicht die Dateien von ihnen kopieren.

> find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child 

über die alle Unterverzeichnisse in 03_2016 dem Namen „Kind“ finden, aber wie kopiere ich nun die Dateien in diesen Verzeichnissen?

Ich habe versucht, dies aber das Problem ist, dass es die Verzeichnisse zu wollen, scheint sich zu kopieren und nicht nur die Dateien:

> find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs cp '{}' /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \; 

ich nicht bekommen kann es nur die Dateien zielen.

Antwort

1

Sie sind in der Nähe:

> find $YOUR_PATH/03_2016/ -type d -iname child | xargs -I {} find -type f {} | xargs -I {} cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST 

Hinweis: Sie können Dateien überschrieben, die denselben Namen am endgültigen Bestimmungsort teilen

+0

Ah, ich sehe wohin du gehst. Ich bekomme den Fehler '-bash:/Volumes/COMMON-LIC-FOTO/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016: ist ein Verzeichnis', das sich auf das Ziel bezieht. Nicht sicher, warum es sich beschwert, natürlich ist es ein Verzeichnis. –

+0

stellen Sie sicher, dass der zweite Fund ist "-Typ f" – CMPS

1

Dies könnte ein wenig sauberer als die obige Antwort:

find $(find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs) -type f -exec cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \; 

Zwei Anrufe zu finden, ein Aufruf an xargs. Wie die andere Antwort überschreibt dies auch doppelte Dateinamen.

+0

Es funktioniert, danke! Ich sehe, was passiert ist, COMMON-LIC-PHOTO sollte am Ende nicht die -1 gehabt haben (manchmal wird es zweimal gemountet und tut dies, ein ganz anderes Problem!). –

Verwandte Themen