Wie füge ich alle Dateien in einem Verzeichnis zu CVS hinzu oder checke ein?

547
Narek

Angenommen, ich habe viele Dateien, die ich hinzufügen möchte, und dann gleich einchecken. Beachten Sie jedoch, dass der CVS-Ordner ausgeschlossen werden sollte. Welche Art von Befehl oder Skript kann dazu verwendet werden?

Ich habe versucht

find -name "*" -type f | xargs cvs add 

Dateien zum Repository hinzufügen, aber es funktioniert nicht. Irgendwelche Ideen?

Vielen Dank!

0

2 Antworten auf die Frage

2
Caleb

Versuchen Sie dies, um alle Dateien im aktuellen Verzeichnis zu finden und sie zu cvs hinzuzufügen:

find -maxdepth 1 -type f -exec cvs add {} \; 

Ein weiterer Satz, den Sie als Argumente in Betracht ziehen sollten, wäre, -not -name CVSwenn Sie etwas anhand des Namens ausschließen möchten (oben nicht erforderlich, da wir nur Dateien und keine Ordner betrachten).

Aber warum funktioniert Xargs nicht? Narek vor 13 Jahren 0
Wahrscheinlich wegen Problemen mit Leerzeichen in Dateinamen. Sie müssen sehr vorsichtig sein, wie Sie xargs verwenden. `find […] | xargs -n1 -iX" X "cvs add" hat möglicherweise funktioniert, indem jeweils ein Argument ausgeführt und sichergestellt wurde, dass es in Anführungszeichen gesetzt wurde. Die Verwendung von "-exec" ist eine einfachere Möglichkeit, dieses Durcheinander zu vermeiden. Caleb vor 13 Jahren 0
0
Mat

Versuchen Sie es mit etwas wie:

find . -type f -a ! -wholename "*/CVS/*" -print0 | xargs -0 cvs add