Saya mencoba mengotomatiskan svnadmin dump
perintah untuk skrip cadangan, dan saya ingin melakukan sesuatu seperti ini:
find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;
Ini tampaknya bekerja, karena ia melihat melalui setiap repositori svn di /var/svn
, dan berjalan svnadmin dump
di atasnya.
Namun, yang kedua {}
dalam perintah exec tidak bisa diganti dengan nama direktori yang sedang diproses. Pada dasarnya hanya menghasilkan satu file bernama {}.svn
.
Saya menduga ini karena shell menginterpretasikan >
untuk mengakhiri find
perintah, dan ia mencoba mengarahkan ulang stdout dari perintah itu ke file bernama {}.svn
.
Ada ide?
linux
find
redirection
pkaeding
sumber
sumber
{}
sebagai argumen untuksh
dan kemudian (dalamsh
) menyebutnya sebagai"$0"
atau"$1"
atau lebih.Tidak, namun Anda dapat menulis skrip bash sederhana untuk melakukannya kemudian memanggilnya dari find.
Contoh ( /tmp/dump.sh ):
kemudian:
sumber