जब आप पहली बार इस लेख का शीर्षक पढ़ते हैं तो आपको यह सोचने के लिए क्षमा किया जा सकता है कि कुछ तकनीकी रूप से गलत है। आखिर लिनक्स विंडोज ऑपरेटिंग सिस्टम का हिस्सा नहीं है ना? वे दो पूरी तरह से अलग ऑपरेटिंग सिस्टम हैं। पहले, अतीत में विंडोज के साथ लिनक्स स्क्रिप्टिंग का उपयोग करने का एकमात्र तरीका या तो सिगविन जैसा कुछ स्थापित करना रहा है। या दोहरे बूट वाले Linux सिस्टम का उपयोग करें या सांबा जैसा कुछ स्थापित करें।
विंडोज 10 में वह सब बदल गया! माइक्रोसॉफ्ट विंडोज स्टोर पर लिनक्स के कई वितरण उपलब्ध हैं। काली लिनक्स पर यह पिछला एपुअल्स लेख आपके विंडोज 10 वातावरण में विशिष्ट लिनक्स वितरण प्राप्त करने की एक ऐसी विधि का वर्णन करता है।
अपने विंडोज मशीन पर लिनक्स स्क्रिप्ट का उपयोग करने के फायदों में से एक यह है कि आप कार्यों को स्वचालित करने के लिए शक्तिशाली लिनक्स स्क्रिप्टिंग भाषा का उपयोग कर सकते हैं, खासकर यदि आप लिनक्स स्क्रिप्टिंग से अधिक परिचित हैं, जैसे पावरहेल, या डॉस बैच फाइलें। यह आलेख बताता है कि एक विशिष्ट विंडोज डेस्कटॉप को साफ करने के लिए लिनक्स "बैश" स्क्रिप्ट कैसे लिखें। यदि आप लिनक्स के लिए नए हैं तो आप इस लेख से मूल बातें सीखेंगे, और इस प्रक्रिया में एक उपयोगी उपयोगिता का निर्माण करेंगे।
हम एक बुनियादी उबंटू लिनक्स टर्मिनल का उपयोग करेंगे, (विंडोज 10 मशीनों पर विंडोज स्टोर पर उपलब्ध) जो आपको बैश, के एसएसएच, गिट, एपीटी और कई अन्य लिनक्स कमांड का उपयोग करने की अनुमति देता है। यदि आपने पहले से ऐसा नहीं किया है तो इसे स्थापित करने की आवश्यकता होगी। विधि यहाँ समझाया गया है।
लिनक्स कमांड लाइन
एक बार जब आप उबंटू स्थापित कर लेते हैं और इसे चलाते हैं, तो आपको निम्न के समान एक कमांड लाइन विंडो मिलेगी। यह आपको एक बैश लिनक्स, कमांड लाइन देगा:
अब हम अपनी स्क्रिप्ट लिखेंगे। आप किसी भी संपादक के साथ फ़ाइल को संपादित कर सकते हैं, जिसमें नोटपैड जैसे विंडोज संपादक, या vi जैसे लिनक्स संपादक शामिल हैं, यदि आप इसका उपयोग करने के लिए आश्वस्त हैं।
जब आप उबंटू टर्मिनल खोलते हैं, तो उबंटू कार्यक्षेत्र में आपका स्थान आपकी होम निर्देशिका होगी। यह कमांड प्रॉम्प्ट पर कमांड दर्ज करके पता लगाया जा सकता है:
echo $HOME
और यह आपके होम डायरेक्टरी को आउटपुट करेगा जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है। लिनक्स प्रारूप, निर्देशिकाओं का प्रतिनिधित्व करने वाले फॉरवर्ड स्लैश का उपयोग करता है, जैसे "/"।
सुविधा के लिए, हम स्क्रिप्ट को होम डायरेक्टरी में रखेंगे।
अगला कदम अपने डेस्कटॉप के स्थान का पता लगाना है, क्योंकि इसे लिनक्स पथ के रूप में जाना जाता है। सही निर्देशिका में फ़ाइलों पर कार्रवाई करने के लिए हमें इसकी आवश्यकता होगी।
टर्मिनल में "सीडी /" टाइप करें। यह आपको आपके Ubuntu परिवेश के मूल क्षेत्र में ले जाता है।
फिर “ls” टाइप करें
यह लिनक्स में सभी निर्देशिकाओं को सूचीबद्ध करता है। आप Linux टर्मिनल में कुछ इस तरह देखेंगे:
हमें आपका उपयोगकर्ता डेस्कटॉप ढूंढना होगा। यह मानते हुए कि यह C ड्राइव पर है, "mnt" डायरेक्टरी में बदलें। यह वह जगह है जहां विंडोज़ ड्राइव की पहचान इस प्रकार की जाएगी:
फिर आपको यह जानना होगा कि आपका डेस्कटॉप किस निर्देशिका में रहता है। आप इसे आमतौर पर विंडोज़ में डेस्कटॉप आइकन पर "राइट क्लिक" करके पा सकते हैं जैसे कि फाइल एक्सप्लोरर में "क्विक एक्सेस" सूची से। आपका डेस्कटॉप निर्देशिका स्थान दिखाया जाएगा:
इससे, आप टर्मिनल में Linux का उपयोग करके अपनी निर्देशिका में बदल सकते हैं:
इसलिए, इस उदाहरण में, आप टर्मिनल में टाइप करते हैं, यह याद करते हुए कि विंडोज़ में बैकस्लैश लिनक्स में फॉरवर्ड स्लैश के बराबर हैं। मेरे मामले में, "निर्देशिका बदलें" कमांड में आवश्यक पथ है:
cd /mnt/c/Users/gofor/OneDrive/Desktop
फिर आप "ls" का उपयोग करके अपने डेस्कटॉप पर सभी फाइलों को सूचीबद्ध कर सकते हैं:
अगर यह मेरे डेस्कटॉप जैसा कुछ है तो आपको इस तरह की फाइलों की एक लंबी सूची मिल जाएगी:
आप यहां देख सकते हैं कि विंडोज़ में मेरा डेस्कटॉप कितना गन्दा दिखता है:
मेरे अन्य 2 मॉनिटरों पर और आइकन थे, इसलिए हमें इन फ़ाइलों को वर्गीकृत और व्यवस्थित करने की आवश्यकता है! प्रदान की गई स्क्रिप्ट प्रत्येक फ़ाइल प्रकार को ले लेगी, और उन्हें डेस्कटॉप पर एक प्रासंगिक नामित फ़ोल्डर में रख देगी।
इसलिए, उदाहरण के लिए, शॉर्टकट फ़ाइलें, ये *.lnk फ़ाइलें होंगी, इसलिए हम उन्हें "शॉर्टकट" नामक फ़ोल्डर में स्थानांतरित कर देंगे।
इसी तरह, छवि फ़ाइलें, जैसे .jpg, .png, .bmp, . svg को "IMAGES" नामक फ़ोल्डर में ले जाया जाएगा।
दस्तावेज़ और कार्यालय दस्तावेज़, जैसे वर्ड फ़ाइलें यानी .docx, .pdf, .xls, को "OFFICEDOCS" नामक फ़ोल्डर में रखा जाएगा।
इसलिए, जब स्क्रिप्ट चलाई जाती है, तो सभी दस्तावेज़ उस फ़ाइल श्रेणी के लिए बनाई गई प्रासंगिक निर्देशिका में एक संगठित तरीके से उपलब्ध होंगे। यह डेस्कटॉप को अव्यवस्थित कर देगा और आपकी डेस्कटॉप फ़ाइलों को अधिक व्यवस्थित कर देगा। आप जितने चाहें उतने फ़ोल्डर प्रकार बना सकते हैं और फ़ाइल मानदंड परिभाषित कर सकते हैं। फ़ाइलों को केवल फ़ाइल प्रकार द्वारा व्यवस्थित करने की आवश्यकता नहीं है, आप अपनी इच्छानुसार श्रेणी फ़ोल्डर बना सकते हैं, जैसे "HRFILES" और "PROJECTFILES"। इस उदाहरण में, हम फ़ाइलों को उनके फ़ाइल प्रकार के अनुसार व्यवस्थित करेंगे।
श्रेणी और फ़ाइल सूची बनाना
इस एप्लिकेशन का उपयोग करने के लिए, हमें 2 फाइलों की आवश्यकता होगी:
ए) कॉमा-सीमांकित सीएसवी फ़ाइल में रखी गई श्रेणियों में जाने के लिए श्रेणियों और फ़ाइल प्रकारों की एक सूची। प्रत्येक श्रेणी का नाम उस निर्देशिका का नाम होगा जिसमें फ़ाइलें डेस्कटॉप पर रखी जाएंगी। आप किसी भी पसंदीदा संपादक के साथ CSV फ़ाइल बना सकते हैं। इस उदाहरण में, हम नोटपैड का उपयोग करेंगे। टर्मिनल प्रकार:
नोटपैड क्लीनअप.सीएसवी
चूंकि इस स्तर पर फ़ाइल मौजूद नहीं होगी, यह अनुरोध करेगी कि आप एक नई फ़ाइल बनाएं, इसलिए बस "हां" दबाएं।
अब हम प्रत्येक श्रेणी के लिए "श्रेणी, फ़ाइल प्रकार 1, फ़ाइल प्रकार 2, फ़ाइल प्रकार 3,…, आदि" प्रारूप में निम्नलिखित विवरण दर्ज करेंगे:
SHORTCUTS,lnk
IMAGES,jpg,png,svg
DOCUMENTS,txt,docx,doc,pdf
The first field will be the name of the directory on the desktop, where the remaining file types will be placed. The remaining fields are the file types you wish to move to the folder.
इसलिए, शॉर्टकट फ़ोल्डर के लिए, सभी *.lnk फ़ाइलों को उस फ़ोल्डर में ले जाया जाएगा। IMAGES फ़ोल्डर के लिए, *.jpg,*.png और *.svg वाली सभी फ़ाइलों को IMAGES फ़ोल्डर में ले जाया जाएगा। अंत में, हम सभी *.txt,*.docx,*.doc और *.pdf फाइलों को DOCUMENTS फोल्डर में ले जाते हैं। इस तरह, हम फाइलों को सही निर्देशिकाओं में व्यवस्थित कर रहे हैं।
एक बार जब हम CSV फ़ाइल बना लेते हैं, तो हम स्क्रिप्ट लिखने के लिए तैयार होते हैं। हम स्क्रिप्ट को कॉल करेंगे, cleanup.sh। वैसे, इस स्क्रिप्ट में न्यूनतम सत्यापन होगा, इसलिए आपको यह सुनिश्चित करना होगा कि CSV फ़ाइल सही प्रारूप में है, या यह काम नहीं करेगी! इस स्क्रिप्ट में हम केवल यह जांचना चाहते हैं कि फ़ाइलें और फ़ोल्डर्स मौजूद हैं, एक न्यूनतम जाँच के रूप में।
आप टर्मिनल में स्क्रिप्ट को संपादित कर सकते हैं यदि आप यूनिक्स प्रकार के संपादकों को जानते हैं, जैसे कि vi, या आप केवल नोटपैड का उपयोग कर सकते हैं:
notepad cleanup.sh
स्क्रिप्ट की क्रिया उस CSV फ़ाइल का नाम सेट करना है जिसे हम स्क्रिप्ट में पढ़ रहे हैं, और उस डेस्कटॉप का स्थान जिसे हम साफ़ करना चाहते हैं। हम वेरिएबल को क्लीनअप CSV फ़ाइल और डेस्कटॉप स्थान पर सेट करेंगे। मेरे मामले में, यह इस प्रकार है। आपको अपने लिए डेस्कटॉप स्थान बदलना होगा। कृपया ध्यान दें, "<" और ">" के बीच कुछ भी एक प्लेसहोल्डर है जहां आपको अपनी विशिष्ट जानकारी इनपुट करने की आवश्यकता होती है।
इसलिए। स्क्रिप्ट की पहली 2 पंक्तियाँ हैं:
DESKTOP=/mnt/c/Users/<your windows location>/Desktop
CSV=cleanup.csv
पूरी स्क्रिप्ट नीचे देखी जा सकती है। यदि आप कमांड को समझना चाहते हैं तो कृपया टिप्पणियों को पढ़ें, और यदि आप कमांड के बारे में सुनिश्चित नहीं हैं, तो कमांड के काम करने के तरीके के बारे में अधिक जानकारी प्राप्त करने के लिए, लिनक्स कमांड लाइन पर "मैन <कमांड नेम>" आज़माएं।पी>
क्लीनअप स्क्रिप्ट को निष्पादन योग्य बनाएं और उसे चलाएं
होम कमांड लाइन से स्क्रिप्ट चलाने के लिए, आपको इसे निम्न कमांड के साथ निष्पादन योग्य बनाने की आवश्यकता होगी:
chmod +x cleanup.sh
स्क्रिप्ट चलाने के लिए, आपको निम्न टाइप करना होगा, क्योंकि यह वर्तमान निर्देशिका में है।
./cleanup.sh
यहां बताया गया है कि स्क्रिप्ट चलाने से पहले और बाद में मेरा डेस्कटॉप कैसा दिखता था। आप देख सकते हैं कि स्थानांतरित फ़ाइलों वाले फ़ोल्डर अब बन गए हैं, और डेस्कटॉप बहुत कम अव्यवस्थित है:
पहले: इसके बाद:
और शॉर्टकट निर्देशिका, जिसमें सभी शॉर्टकट डेस्कटॉप से स्थानांतरित हो गए हैं।
विंडोज के लिए पूर्ण डेस्कटॉप साफ लिनक्स स्क्रिप्ट
कृपया स्क्रिप्ट में "#" से पहले की टिप्पणियों पर ध्यान दें, क्योंकि वे बताते हैं कि स्क्रिप्ट कैसे काम करती है। # स्थानीय डेस्कटॉप या किसी भी निर्देशिका के स्थान के लिए चर सेट करें जिसे आप साफ़ करना चाहते हैं, और, CSV फ़ाइल का नाम।
DESKTOP=/mnt/c/Users/gofor/OneDrive/Desktop
CSV=cleanup.csv
# यह देखने के लिए परीक्षण करें कि फ़ाइल अस्तित्व के लिए एक linux "test" कमांड और ध्वज "-f" का उपयोग करके क्लीनअप csv फ़ाइल मौजूद है या नहीं।
# अगर फ़ाइल मौजूद नहीं है, तो एक त्रुटि संदेश आउटपुट करें और फिर स्क्रिप्ट को छोड़ दें।
if [ ! -f ${CSV} ]then
echo The cleanup.csv file does not exist.
exit -1
fi
# अब कैरिज रिटर्न कैरेक्टर को हटाकर यदि सीएसवी को डॉस फॉर्मेट में सेव किया गया है तो उसे यूनिक्स फॉर्मेट में कनवर्ट करें।
tr -d '\r' < $CSV > temp.csv
mv temp.csv $CSV
# अब, CSV फ़ाइल लाइन के माध्यम से जाएं, और पहले तर्क का नाम संग्रहीत करें, जो कि
# श्रेणी/निर्देशिका नाम है, जिस पर, सभी शेष तर्क फ़ाइल प्रकार हैं जो
# इन निर्देशिकाओं में रखा गया है।
while read csvline
do
count=1
for filetype in `echo "$csvline" | tr , '\n'`
do
if [ $count -eq 1 ] then
# As this is the first argument, check to see if the folder already exists, and if not, create it.
if [ ! -d ${DESKTOP}/$filetype ] then
# The directory does not exist, so we will create it.
mkdir ${DESKTOP}/$filetype
fi
CATEGORY=${filetype}
else
# Output a friendly message indicating what the script is doing.
echo "moving *.${filetype} to ${CATEGORY}"
# Don't display any error messages ( i.e. >2 /dev/null) when moving the files in case the files do not exist,
# so the "mv" command is "silent".
mv ${DESKTOP}/*.${filetype} ${DESKTOP}/${CATEGORY} 2> /dev/null
fi
count=`expr $count + 1`
done
done < cleanup.csv