कंप्यूटर शुरू होने पर मैं हर निर्देशिका की फ़ाइलों को साफ करने के लिए एक छोटी सी स्क्रिप्ट कैसे लिख सकता हूं?


9

मेरे पास केवल इंटरनेट उपयोग के लिए एक अतिथि कंप्यूटर है। कुछ उपयोगकर्ता कुछ फ़ाइलों को डाउनलोड करते हैं और उन्हें डेस्कटॉप पर छोड़ देते हैं, लेकिन कंप्यूटर में सभी मेहमानों के लिए पर्याप्त स्थान नहीं होता है और इसे वहाँ एक फ़ाइल डालने की अनुमति नहीं होती है।

कंप्यूटर के शुरू होने पर मैं होम डाइरेक्टरी के अंदर हर फाइल को साफ करना चाहता हूं, लेकिन डायरेक्टरी स्ट्रक्चर जैसे म्यूजिक, पिक्चर्स, डॉक्यूमेंट्स और डाउनलोड को सुरक्षित रखें।

मैं यह कैसे हासिल कर सकता हूं?


लगभग सभी को: आपके उत्तर - खेद - चूसना और आप इसे जानते हैं। अगर मेहमान दूसरी भाषा चुनता है तो क्या होगा? उन सभी छिपे हुए कॉन्फ़िगरेशन और कैश फ़ाइलों (ब्राउज़र इतिहास, कचरा, ...) के बारे में क्या? इसके बजाय फाइलों की एक सफेद सूची होनी चाहिए जिसे हटाया नहीं जाएगा (रोलैंड टेलर के अनुसार)। इसके अलावा आप का उपयोग करना चाहिए xdg-user-dirऔर ~/.config/user-dirs.dirsडिफ़ॉल्ट निर्देशिका के लिए विचार करना चाहिए ।
dAnjou

@dAnjou: मेरे समाधान के साथ, चुना भाषा के अनुसार घर में मानक फ़ोल्डर बनाए जाएंगे। इसके अलावा, ओपी एक स्वच्छ वातावरण का अनुरोध करता है, इसलिए मुझे समझ नहीं आ रहा है कि आपके पास एक "सफेद सूची" क्यों है।
enzotib

1
@enzotib: ठीक है, क्षमा करें। जाहिर तौर पर रोलैंड टेलर (और मैं) गलत थे। मुझे नहीं पता कि मुझे क्या लगा। आप अपने जवाब को संपादित करने और जोड़ने संभावना में अपनी स्क्रिप्ट डाल करने के लिए कर सकते हैं /etc/gdm/PostSessionया /etc/gdm/PreSessionतो यह है कि मैं अपनी downvote ले जा सकते हैं?
dnnjou

जवाबों:


14

आप सुरक्षित रूप से हटा सकते हैं सभी फाइलों को घर निर्देशिका में, क्योंकि वे निर्मित कर रहे हैं, के अलावा उपयोगकर्ता निर्माण पर कॉपी फ़ाइलों से /etc/skelहै, तो

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

जहां usernameकुछ सार्थक के साथ प्रतिस्थापित किया जाना चाहिए।

आपके अनुरोध ("जब कंप्यूटर शुरू होता है") से इसे निष्पादित किया जा सकता है /etc/rc.local। अधिक संभावना है, आप इसे प्रत्येक लॉगिन के बीच निष्पादित करना चाहते हैं, इसलिए इसे नीचे रखें /etc/gdm/PostSessionया /etc/gdm/PreSession


आप जानते हैं कि कुछ फाइलें हैं जिन्हें यदि हटा दिया गया है तो यह आपको लॉग इन करने से रोक देगा?
RolandiXor

@ रोलैंड टेलर: कौन सी फाइल? मैंने सिर्फ सभी फाइलों को हटाने का परीक्षण किया
enzotib

1
@danjjl: यह विकल्प *सभी फाइलों और निर्देशिकाओं के साथ बैश मैच बनाता है , यहां तक ​​कि छिपे हुए भी।
enzotib

1
नहीं, अनुपलब्ध फाइलें आपको लॉग इन करने से नहीं रोकेंगी। लापता होम डायरेक्टरी, गलत अनुमतियों के साथ समस्याओं या फाइलों को सेट कर सकती है। लेकिन प्रोग्राम को कभी भी, किसी भी परिस्थिति में, यह नहीं मानना ​​चाहिए कि एक फ़ाइल मौजूद है। यदि यह मौजूद नहीं है, तो इसे बस बनाया जाना चाहिए।
Jo-Erlend Schinstad

1
मैं "स्टार्टअप आवेदन", कि शायद चलाए जा रहे हैं में रख करने के लिए सुझाव नहीं है के बादuser-dirs-update-gtk वैश्विक स्टार्टअप स्क्रिप्ट। किसी अन्य उपयोगकर्ता के लिए, आपको usernameस्क्रिप्ट में परिवर्तन करना होगा । अंत में, अतिथि खाते में लगातार होम निर्देशिका नहीं है, इसलिए इस खाते के लिए स्क्रिप्ट की आवश्यकता नहीं है।
enzotib

6

आप अतिथि सत्र का वर्णन कर रहे हैं। मुझे पूरी तरह से यकीन नहीं है कि यह कैसे काम करता है, लेकिन 11.10 में यह स्वागत स्क्रीन में डिफ़ॉल्ट रूप से दिखाया गया है। यह खाता ठीक वही करता है जो आप चाहते हैं, इसलिए यदि आप 11.04 पर इसे फिर से बनाने की कोशिश में समय बिताना चाहते हैं, या यदि आप 11.10 के उन्नयन के साथ सहज हैं, तो आप प्रतीक्षा करेंगे। यह गुरुवार को बीटा 1 में प्रवेश कर रहा है। किसी भी मामले में, यह लाइव सत्र को डाउनलोड करने और बूट करने के लिए चोट नहीं करता है और देखें कि आपको यह कैसे पसंद है। यदि यह ठीक उसी तरह है जैसे आप इसे चाहते हैं, तो आप जानेंगे कि इसे कैसे बनाया जाए।


2

अपने चयन के नाम के साथ एक स्क्रिप्ट बनाएं और इस सामग्री को जोड़ें:

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

इस फ़ाइल को सहेजें, इसे निष्पादन योग्य के रूप में चिह्नित करें, और इसे अपने स्टार्ट अप एप्लिकेशन (उस खाते के लिए जिसे साफ करने की आवश्यकता है) में जोड़ें।

यह उन निर्देशिकाओं में सभी फ़ाइलों को साफ़ करेगा। हालांकि, ~/खुद की सामग्री को साफ करने के लिए थोड़ा अधिक जटिल है, और अगर मैं ऐसा करने के लिए एक सुरक्षित तरीका ढूंढता हूं, तो मैं अपने उत्तर को अपडेट करूंगा।


1

आप कुछ ऐसा कर सकते थे

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

cleanup.shइसे कुछ इस तरह से सहेजें और इसके साथ निष्पादन योग्य बनाएं chmod +x cleanup.sh। तब आप कॉल कर सकते हैं ./cleanup। ध्यान दें कि यह इन फ़ोल्डरों में सब कुछ हटा देता है , देखभाल के साथ उपयोग करें। अपने उपयोगकर्ता के नाम में "अतिथि" बदलना सुनिश्चित करें।

स्टार्टअप स्टार्टअप की प्राथमिकताओं में इसे जोड़कर आप इसे स्टार्टअप पर चला सकते हैं।

आप इस स्क्रिप्ट को अपने सिस्टम पर क्रोन जॉब के रूप में भी जोड़ सकते हैं ताकि यह हर रात चले। क्रोन नौकरियों के बारे में अधिक जानकारी के लिए यहां देखें


lol तुम्हारा उत्तर मेरे से बेहतर है: D! Btw परिवर्तन -rf -r के रूप में है कि सुरक्षित है।
रोलंडीएक्सॉर

@ रोलैंड: जरूरी नहीं कि सुरक्षित और यहां तक ​​कि एक संभावित नुकसान भी हो: -fकेवल पढ़ने के लिए फाइलें (राइट बिट सेट के बिना फाइलें) को हटाने से रोकता है और बिना पुष्टि किए उन लोगों को हटा देता है। हटाकर -f, कोई भी उपयोगकर्ता किसी भी फ़ाइल को हटाकर /home/Guest/Desktop/000000000उसे केवल पढ़ने के लिए तैयार करने से रोक सकता है । यह एक छिपी हुई पुष्टि के साथ स्क्रिप्ट को लटका देगा और जिससे फ़ाइलों को हटाने के साथ जारी नहीं रहेगा। फ़ायरफ़ॉक्स केवल पढ़ने के लिए डाउनलोड करने के लिए जाना जाता है।
लीकेनस्टेन

यही कारण है कि मैंने मूल रूप से इसे शामिल किया। मैं नहीं चाहता था कि स्क्रिप्ट केवल फ़ाइल की स्थिति में विफल हो। मुझे यह भी पता चला क्योंकि यह एक बहुत विनाशकारी स्क्रिप्ट थी, हालांकि -fझंडा जोड़ने से बहुत नुकसान नहीं होने वाला था। मैं इसे वापस जोड़ सकता हूं।
क्रिश हार्पर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.