Próbuję zautomatyzować svnadmin dump
polecenie dla skryptu zapasowego i chcę zrobić coś takiego:
find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;
Wydaje się, że to działa, ponieważ przegląda każde repozytorium svn /var/svn
i działa svnadmin dump
na nim.
Jednak druga {}
komenda exec nie zastępuje nazwy przetwarzanego katalogu. Zasadniczo wynika tylko jeden plik o nazwie {}.svn
.
Podejrzewam, że dzieje się tak, ponieważ powłoka interpretuje >
zakończenie find
polecenia i próbuje przekierować standardowe wyjście z tego polecenia do pliku o nazwie {}.svn
.
Jakieś pomysły?
linux
find
redirection
pkaeding
źródło
źródło
{}
jako argumentush
, a następnie (w środkush
) odnoszą się do niej, jak"$0"
i"$1"
czy tak.Nie, możesz jednak napisać prosty skrypt bash, aby to zrobić, a następnie wywołać go z find.
Przykład ( /tmp/dump.sh ):
następnie:
źródło