कुछ दिन पहले मुझे अपने Linux सर्वर पर एक स्थान से दूसरे स्थान पर बहुत सारी फ़ाइलों वाली डायरेक्टरी को माइग्रेट करने की आवश्यकता थी। ऐसा करने के कई तरीके हैं। एक साधारण cp कमांड काम कर सकती थी। हालांकि, चूंकि मैं जिस डेटा को कॉपी कर रहा था वह एक डेटाबेस था और मैं यह सुनिश्चित करना चाहता था कि कॉपी पूरी तरह से हो, मैंने इंटरनेट पर खोज की और इसके लिए एक शानदार वन-लाइनर बैश समाधान पाया।
मैं डायरेक्टरी /var/lib/mysql की सामग्री को /opt/mysql में ले जाना चाहता था। पहले मैंने डायरेक्टरी /var/lib/mysql में बदलाव किया:
# cd /var/lib/mysql
फिर मैंने मेरे लिए जादू करने के लिए निम्न वन-लाइनर चलाया।
# tar cf – * | ( cd /opt/mysql; tar xfp -)
मैंने अपने डेटाबेस फ़ाइलों को कॉपी करने के लिए ऊपर दिखाई गई कमांड का उपयोग किया। यह क्या करता है कि यह वर्तमान डायरेक्टरी की पूरी सामग्री को एक आर्काइव फ़ाइल में जोड़ता है, गंतव्य डायरेक्टरी के स्थान पर बदलता है (/opt/mysql इस मामले में), और फिर आर्काइव को एक्सट्रैक्ट करता है। आगे बढ़ने से पहले, tar के साथ आप जो अन्य चीजें कर सकते हैं उन्हें देखना सुनिश्चित करें :)