उन सभी फ़ाइलों को हटा दें जिनके फ़ाइलनाम में एक विशेष स्ट्रिंग है?


22

मैंने अपना वर्डप्रेस थीम बदल दिया। पुराने ने सर्वर पर इतनी छवियां बनाईं। मेरी नई थीम को उनकी आवश्यकता नहीं है, इसलिए मैं सभी को हटाना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

उदाहरण के लिए:
डिफ़ॉल्ट छवि:12_angry_men_lone_holdout.jpg

मैं हटाना चाहता हूं:

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

Digitalocean, Ubuntu 13.10 का उपयोग करना।


man rmrm कमांड के मैनुअल पेज को देखने के लिए एक टर्मिनल प्रकार पर।
हमायग


ऐसा लगता है कि ये छवियां आपके WorldPress मीडिया लाइब्रेरी पर अपलोड की गई छवियों से स्वचालित रूप से बनाए गए थंबनेल हैं। यदि ऐसा है, तो सर्वर पर टर्मिनल में उन फ़ाइलों को नष्ट न करें। अपना WordPress व्यवस्थापक पृष्ठ खोलें, 'सेटिंग्स'> 'मीडिया' खोलें। वहां वांछित थंबनेल छवि आकार सेट करें। फिर प्लगइन को पुन: स्थापित करें थंबनेल को पुन: बनाएं और सभी थंबनेल बनाएं (आपकी मीडिया लाइब्रेरी में छवियों की मात्रा के आधार पर कुछ मिनट लग सकते हैं)।
बॉब

जवाबों:


22

यदि वे एक ही फ़ोल्डर में हैं तो उसे प्राप्त करने के लिए वाइल्डकार्ड का उपयोग करें:

rm *text*

जहां textस्ट्रिंग में फ़ाइल नाम शामिल है।


वास्तव में यह एक निर्देशिका नहीं है, लेकिन मैं अब तक एक के बाद एक कर सकता हूं। धन्यवाद!
इब्राहिम मुमकु

27

findउनके नाम में "पाठ" के साथ फ़ाइलों को फिर से खोजने और हटाने के लिए उपयोग करें :

find -type f -name '*text*' -delete

आप भी find -type f -name '*text*'(बिना) दौड़ सकते हैं-delete सुनिश्चित कर सकते हैं कि इससे पहले कि आप ) सुनिश्चित करने के लिए कि आप कोई भी फाइल डिलीट नहीं करेंगे, जिसे आपने हटाने का इरादा नहीं किया है।


वास्तव में, आप वाइल्डकार्ड को खोज स्ट्रिंग में कहीं भी रख सकते हैं, इसलिए -name '12_angry_men_lone_holdout-*.jpg'यह आपके मामले में अधिक उपयुक्त हो सकता है।


क्या फ़ाइल पथ का प्रतिनिधित्व करने की कोई आवश्यकता नहीं है
अविनाश राज

@AvinashRaj यदि पहला पैरामीटर कोई पथ नहीं है, findतो वर्तमान कार्य निर्देशिका को खोजता है।
n.st

किसी ने डाला। बस वर्तमान कार्यशील निर्देशिका के अंदर खोजने के लिए खोजें।
अविनाश राज

1
@AvinashRaj यह बेमानी होगा। के अनुसार man find: यदि कोई पथ नहीं दिया गया है, तो वर्तमान निर्देशिका का उपयोग किया जाता है।
n.st

@AashashRaj वास्तव में एक पथ की आवश्यकता के लिए पोसिक्स विनिर्देश को चालू करता है। डिफाल्टिंग एक ऐसा संशोधन है जो GNU खोज द्वारा जोड़ा गया है। यदि यह यूनिक्स और लिनक्स थे , तो मैं इसे अपने उत्तर में जोड़ दूंगा, लेकिन चूंकि उबंटू जीएनयू डिफ़ॉल्ट रूप से आता है, इसलिए मैं नए लोगों को ज़रूरत से ज़्यादा भ्रमित नहीं करूंगा। ;)find.
एनटी

1

इसे इस्तेमाल करे:

rm -rf 12_angry_men_lone_holdout-*

यह keep 12_angry_men_lone_holdout.jpgआयामों के साथ फ़ाइलों को हटाएगा (290x166)

और कृपया याद रखें

rm -rf 12_angry_men_lone_holdout.*

डिफ़ॉल्ट फ़ाइल को भी हटा देगा, जिसकी आपको आवश्यकता थी।


0
find . -type f -name '*[0-9]x[0-9]*' -delete

इसे मूल निर्देशिका में चलाएँ। यह उन सभी फ़ाइलों को हटाने जा रहा है जिनमें एक अंक है, जिसके बाद एक 'x' वर्ण है और उसके नाम पर एक और अंक है।

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

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