Ich möchte alle versionierten Dateien aus meinem Repository entfernen, aber die versionierte Verzeichnisstruktur beibehalten. Natürlich möchte ich alle .svn-Verzeichnisse unberührt lassen.
Mit anderen Worten, ich möchte die Verzeichnisstruktur einer Arbeitskopie vollständig leeren, ohne die Verzeichnisstruktur selbst zu beschädigen.
Entfernen der Dateien aus dieser Struktur:
dir/
.svn/
[files]
svsubdir1/
file1
.svn/
[files]
subdir2/
file2
file3
file4
.svn/
[files]
subsubdir1/
file5
.svn/
[files]
Sollte führen zu:
dir/
.svn/
[files]
svsubdir1/
.svn/
[files]
subdir2/
.svn/
[files]
subsubdir1/
.svn/
[files]
Ich suche nach einem find
Befehl oder etwas, um dies zu erreichen, und ich habe Probleme beim Erstellen des Befehls. Danke für die Hilfe!
Antworten:
sollte die Rechnung passen (kommt meistens von der Find Manpage für
-path
). Pfeife es auf weniger und schau es dir an. Zuerst wird gesucht (Pfad endet in .svn und nicht in dieses Verzeichnis zurückgreifen (bereinigen)) oder (wenn es sich um eine Datei handelt, drucken Sie sie aus).Wenn es gut aussieht, ändern Sie es in
Die + -Version fügt alle Dateien in einem rm-Befehl zusammen. Wenn Sie paranoid sind, sichern Sie zuerst den Baum (
cp -a dir/ otherdir/
).quelle
-delete
steht die Tiefe an erster Stelle und steht daher in Konflikt,-prune
da die Dateien im Ordner überprüft werden, bevor der Ordner selbst untersucht wird. Die andere Lösung (mit-not -path ...
anstatt-path ... -prune
die Option -delete verwenden zu können.Sollte den Trick machen.
quelle
-exec /bin/rm '{}'
können Sie verwenden-delete
.