स्क्रिप्ट बैश निर्देशिकाओं पर पुरानी फाइलों को विशेष chracters के साथ हटाते हैं


1

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

यह ठीक काम करता है सिवाय इसके कि इसमें नामों में विशेष वर्ण या स्थान हो

/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Mart&AO0-n Fernandez
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Cordoba
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe - Sevilla

इस परिदृश्य में काम नहीं करते

मैं दो प्रारूपों का उपयोग करता हूं लेकिन काम नहीं करता

for p in $(cat /tmp/listado.txt); do  find "$p" -type f -mtime +50 -delete; done

या

for p in $(cat /tmp/listado.txt); do  find $p -type f -mtime +50 -delete; done

और दो को यह त्रुटि मिलती है

 /home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Not found

मुझे नहीं पता कि स्क्रिप्ट सही लाइन कैसे पास कर सकती है।

जवाबों:


2

forबयान वचन के द्वारा इनपुट शब्द "लिखा है"। आपको इसे लाइन से लाइन में पढ़ना होगा।

while read -r line; do find "$line" -type f ...; done < /tmp/listado.txt

-rसे लाइनों में रोकता है बैकस्लैश व्याख्या की जा रही है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.