ฉันกำลังพยายามทำให้svnadmin dumpคำสั่งสำหรับสคริปต์สำรองโดยอัตโนมัติและฉันต้องการทำสิ่งนี้:
find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;
นี้ดูเหมือนว่าจะทำงานในการที่จะดูผ่านแต่ละพื้นที่เก็บข้อมูล SVN ใน/var/svnและวิ่งsvnadmin dumpกับมัน
อย่างไรก็ตามที่สอง{}ในคำสั่ง exec ไม่ได้รับการแทนที่สำหรับชื่อของไดเรกทอรีที่กำลังประมวลผล {}.svnมันเป็นพื้นผลเพียงแค่ไฟล์เดียวชื่อ
ฉันสงสัยว่านี้เป็นเพราะเปลือกตีความ>เพื่อยุติคำสั่งและจะพยายามเปลี่ยนทิศจากคำสั่งที่ไฟล์ที่ชื่อว่าfind{}.svn
ความคิดใด ๆ
{}เป็นอาร์กิวเมนต์ไปยังshแล้ว (ภายในsh) ดูเป็น"$0"หรือ"$1"หรือดังนั้น