Ich kann diesen Befehl verwenden locate --regex '/.git$' | grep username
um alle Git-Repositories auf meinem System zu finden, aber weil die .svn
erscheint in Unterverzeichnissen von Repositories der Befehl locate --regex '/.svn$' | grep username
funktionieren auch.
Ersteres produzierte etwa 120 und letzteres über 14.000.
Nach welchem Datei- oder Verzeichnisnamen soll ich suchen, um Subversion-Repositories zu finden?
Akzeptierte Antwort:
In Git ist jede Arbeitskopie ein eigenes Repository. Dies ist bei SVN nicht der Fall. Wenn Sie also tatsächlich Repositories finden möchten , und sie befinden sich am Standardspeicherort und auf dem lokalen Computer, dies reicht aus:
ls /var/svn
Angenommen, Sie möchten tatsächlich Arbeitskopien finden , SVN seit Version 1.7 platziert nur .svn
Dateien auf der obersten Ebene einer Arbeitskopie, also der Befehl
find / -type d -name '.svn'
würde gut funktionieren. Wenn Sie früheres SVN verwendet haben und diese Verzeichnisse überall verstreut sind, können Sie alternativ Folgendes versuchen:
find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'
Dies listet alle Verzeichnisse auf, die .svn
enthalten Unterverzeichnisse, gibt dann nur die aus, die kein anderes als Präfix enthalten.
Ich habe einen Computer gefunden, der locate
enthält , wo
$ locate --version
mlocate 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.
This program is provided with NO WARRANTY, to the extent permitted by law.
Auf diesem System ein ähnlicher Ansatz wie beim finalen find
Beispiel:
locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'