जवाबों:
विकल्प के findसाथ कमांड का उपयोग करें -user। कुछ इस तरह:
find / -user john
अंततः उपयोगकर्ता "जॉन" के स्वामित्व वाली सभी फाइलों को चालू कर देगा।
यदि आप अपना स्वामित्व बदलना चाहते हैं (मैं findयह सुनिश्चित करने के बिना निष्पादन को चलाऊंगा कि आपके पास वह सूची है जो आप चाहते हैं), तो कुछ इस तरह:
find / -user john -exec chown harry {} \;
करूंगा।
यह देर हो चुकी है, लेकिन आज मैं इस सवाल पर अड़ गया हूं क्योंकि मेरे rsyncपास --usermapविकल्प नहीं है ।
My chown(v। Chown (GNU coreutils) 8.13) एक अंतर्निहित पुनर्खरीद ( -R) और एक --fromविकल्प प्रदान करता है ताकि आपकी (और मेरी) समस्या का भी उपयोग करके हल किया जा सके।
chown -R --from=john harry /
wwwrun (id:30)और समूह www (id:8), www-data (id: 33)दोनों के लिए डेबियन में । मैं फ़ाइलों का उपयोग करने के बाद की नकल की
rsync -az /path/to/files me@debian:/path/to/
मैंनें इस्तेमाल किया
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
लक्ष्य (डेबियन) मशीन पर।
नोट: rsync version 3.1.0 protocol version 31उपर्युक्त उल्लेख किया गया है --usermapतो अगर मुझे लगता है कि मैं स्रोत मशीन पर एक कमांड के साथ सभी तीन चरण कर सकता था:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/
find -execमेरे लिए एक लाइनर बस मैन्युअल रूप से काम करने से पहले, एक अंतिम उपाय है। (इसके अलावा, मुझे लेखन से नफरत है {} \;, लेकिन यह व्यक्तिगत है)
chown harry:harryअगर मुझे यह सुनिश्चित करने की आवश्यकता है कि समूह सदस्यता सही है, तो भी चलाएं । लेकिन यह यहां के आवेदन पर बहुत अधिक निर्भर करता है।