Saya mencoba mengotomatiskan svnadmin dumpperintah 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 dumpdi 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 findperintah, dan ia mencoba mengarahkan ulang stdout dari perintah itu ke file bernama {}.svn.
Ada ide?
{}sebagai argumen untukshdan kemudian (dalamsh) menyebutnya sebagai"$0"atau"$1"atau lebih.