Tôi đang cố gắng tự động hóa một svnadmin dumplệ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/svnvà chạy svnadmin dumptrê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 findlệ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ốshvà sau đó (bên trongsh) đề cập đến nó như là"$0"hay"$1"hoặc lâu hơn.