2009-03-16 5 views
3
cp -v -ur path/to/jsps/ /dest/path/ 

Der obige Befehl kopiert alle Dateien, die vom Quellverzeichnis zum Ziel aktualisiert wurden, unter Beibehaltung der Verzeichnisstruktur.Wie können Sie rekursiv alle * .foo-Dateien in src kopieren, um mit cp und/oder find?

Was ich nicht herausfinden kann ist, wie man nur * .someExtention-Dateien kopiert. Ich weiß, dass Sie so etwas wie verwenden:

find -f -name *.jsp -exec some awesome commands {} 

Aber ich weiß nicht, wie es zu tun (und ich habe keine Zeit, um die Info-Seiten im Detail zu lesen).

Alle Hilfe wird sehr geschätzt.

Danke, LES

Antwort

7

Wenn Sie find/cp verwenden Sie dann den folgenden sollte es tun:

find -f -name *.jsp -exec cp --parents {} /dest/path \; 

aber rsync ist wahrscheinlich das bessere Werkzeug.

+0

Ich habe noch nicht getestet, aber es sieht aus, als was ich brauche. Vielen Dank! Ich mache einige Web-Dev und ich muss oft ein JSP ändern und kopieren Sie die Datei dann in das Zielverzeichnis (Mvn Verzeichnisstruktur). Rsync könnte übertrieben sein. – les2

4

rsync könnte helfen - Sie können es mit einer Kombination von Optionen include und exclude einfach kopieren bestimmte Dateien sagen, z.B.

rsync -a \ 
    --include='*.foo' \ 
    --include='*/' \ 
    --exclude='*' \ 
    path/to/jsps/ /dest/path/ 

Siehe manual und Blick auf die Filter-Regeln für mehr Kapitel.

+0

+1. Sie können dies mit find und cp machen, aber rsync ist wirklich das bessere Werkzeug zu verwenden. – Eddie