ฉันกำลังมองหาคำสั่ง Linux ที่สามารถเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดที่เป็นของผู้ใช้ที่กำหนดโดยเฉพาะอย่างยิ่งในไดเรกทอรีเป้าหมายเพื่อผู้ใช้ที่ระบุอื่น
คำสั่งในฝันของฉันจะมีลักษณะเช่นนี้ ...
chuser -R --olduser tom --newuser jerry
หรือ
chuser -R --olduser 1066 --newuser 1492
นี่คือสถานการณ์ของฉัน ... ฉันมีไฟล์สำรอง (.tgz) ที่เก็บข้อมูลผู้ใช้และกลุ่มไว้ มันถูกนำมาจากเว็บเซิร์ฟเวอร์ที่ใช้ Apache และ MySQL ไฟล์ในการสำรองข้อมูลมาจากทั่วทั้งระบบและมีไฟล์จากผู้ใช้หลายรายและบัญชีประเภทระบบหลายระบบและเป็นกุญแจสำคัญที่เมื่อทำการกู้คืนบนเซิร์ฟเวอร์ใหม่การตั้งค่าจะไม่สูญหาย ปัญหาคือผู้ใช้ในเครื่องไฟล์ที่ถูกกู้คืนไม่ตรงกับไฟล์ในไฟล์สำรอง เช่นเครื่องทั้งสองมีผู้ใช้ MySQL แต่มีรหัสผู้ใช้ที่แตกต่างกันและมีรหัสผู้ใช้หลายตัวที่มีอยู่ในเครื่องทั้งสองที่เป็นของผู้ใช้ที่แตกต่างกัน ซึ่งหมายความว่าไม่มีวิธีการซิงค์ผู้ใช้บนเครื่องใหม่กับผู้ใช้บนเครื่องเก่า
ฉันสามารถค้นหาไฟล์ผู้ใช้ทั้งหมดด้วยคำสั่ง find เช่นนี้ ...
find /decompressed-backup-dir -uid 1050
หรือ
find /decompressed-backup-dir -user tom
ถ้าอย่างที่ฉันสงสัยไม่มีวิธีที่จะทำสิ่งที่ฉันต้องการด้วยคำสั่งเดียวแล้วบางทีอาจมีวิธีที่จะไพเราะผลลัพธ์ของคำสั่ง find ไปยังคำสั่งอื่นเพื่อจัดการกับการเปลี่ยนแปลงความเป็นเจ้าของ?
ฉันสามารถทำได้ด้วยสคริปต์ PHP แต่มี 4GB และหมื่นไฟล์ในการสำรองข้อมูลดังนั้นฉันไม่ต้องการใช้ PHP หรือ Perl แต่ฉันจะมีความสุขกับเชลล์สคริปต์ที่สามารถจัดการได้
-uid
ฉันใช้-user