Tôi đang cố gắng tự động hóa một svnadmin dump
lệnh cho một kịch bản sao lưu và tôi muốn làm một cái gì đó như thế này:
find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;
Điều này dường như hoạt động, trong đó nó xem qua từng kho lưu trữ svn /var/svn
và chạy svnadmin dump
trên nó.
Tuy nhiên, lệnh thứ hai {}
trong lệnh exec không được thay thế cho tên của thư mục đang được xử lý. Về cơ bản nó chỉ dẫn đến một tệp duy nhất có tên {}.svn
.
Tôi nghi ngờ rằng điều này là do shell diễn giải >
để kết thúc find
lệnh và nó cố gắng chuyển hướng thiết bị xuất chuẩn từ lệnh đó sang tệp có tên {}.svn
.
Có ý kiến gì không?
{}
như một đối sốsh
và sau đó (bên trongsh
) đề cập đến nó như là"$0"
hay"$1"
hoặc lâu hơn.