Mohu použít tento příkaz locate --regex '/.git$' | grep username
k nalezení všech git repozitářů v mém systému, ale protože .svn
objeví se v podadresářích repozitářů příkaz locate --regex '/.svn$' | grep username
pracovat také.
První vyrobil asi 120 a druhý přes 14 000.
Jaký název souboru nebo adresáře bych měl vyhledat, abych našel úložiště subverson?
Přijatá odpověď:
V Gitu je každá pracovní kopie svým vlastním úložištěm. To není případ SVN. Pokud tedy skutečně chcete najít úložiště a jsou ve výchozím umístění a na místním počítači, to stačí:
ls /var/svn
Za předpokladu, že skutečně chcete najít pracovní kopie , SVN od verze 1.7 umísťuje pouze .svn
soubory na nejvyšší úrovni pracovní kopie, tedy příkaz
find / -type d -name '.svn'
fungovalo by to dobře. Případně, pokud jste používali dřívější SVN a máte tyto adresáře poseté, můžete zkusit:
find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'
Zde jsou uvedeny všechny adresáře obsahující .svn
podadresáře, pak vytiskne pouze ty, které neobsahují další jako předponu.
Našel jsem počítač obsahující locate
, kde
$ 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.
V tomto systému je přístup podobný konečnému find
příklad:
locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'