Find 'ın -exec seçeneğiyle çalıştırılan bir komutun çıktısını yönlendirmek için' {} 'kullanabilirim?


28

svnadmin dumpBir yedekleme betiği için bir komutu otomatikleştirmeye çalışıyorum ve böyle bir şey yapmak istiyorum:

find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;

Bu her svn deposu bakar ki, işin görünüyor /var/svnve ishal svnadmin dumpüzerine.

Ancak, {}exec komutundaki ikincisi işlenen dizinin yerine geçmez. Temelde sadece adlandırılmış tek bir dosya ile sonuçlanır {}.svn.

Bunun, kabuğun komutu >sonlandırmak için yorumladığından findve stdout'u bu komuttan adlandırılmış dosyaya yönlendirmeye çalıştığından şüpheliyim {}.svn.

Herhangi bir fikir?

Yanıtlar:



5

Hayır, ancak bunu yapmak için basit bir bash betiği yazıp sonra onu bulup çağırabilirsiniz.
Örnek ( /tmp/dump.sh ):

#!/bin/sh
svn admin dump "$1" > "$1".svn

sonra:

find /var/svn/* \( ! -name dir -prune \) -type d -exec sh /tmp/dump.sh '{}' \;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.