आप कैसे सूखी फ़ाइलों को चलाने के लिए आरएम का एक सूखा रन चलाते हैं?


87

मैं देखना चाहता हूं कि rmलिनक्स में प्रदर्शन करने पर कौन सी फाइलें हटा दी जाएंगी । अधिकांश आदेशों में सिर्फ ऐसी जानकारी दिखाने के लिए सूखा रन विकल्प होता है, लेकिन मुझे ऐसा कोई विकल्प नहीं मिल सकता है rm। क्या यह भी संभव है?


मैं यह भी देखना चाहूंगा कि कौन सी फाइलें अनुमतियों की कमी के लिए त्रुटियां उत्पन्न करेंगी।
शमौन वुडसाइड

जवाबों:


121

कहो कि आप चलाना चाहते हैं:

rm *.txt

आप बस चला सकते हैं:

echo rm *.txt

या अभी भी:

echo *.txt

यह देखने के लिए कि क्या फ़ाइलें rmनष्ट हो जाएंगी, क्योंकि यह शेल का विस्तार है *.txt, नहीं rm

केवल यही समय आपकी मदद नहीं करेगा rm -r

यदि आप फ़ाइलों और निर्देशिकाओं को पुनरावर्ती रूप से निकालना चाहते हैं, तो आप findइसके बजाय उपयोग कर सकते हैं rm -r, जैसे

find . -name "*.txt" -print

फिर अगर यह वही करे जो आप चाहते हैं, तो इसे बदल -printदें -delete:

find . -name "*.txt" -delete

आईएमओ एक अच्छा विकल्प है। और यदि आप एक चित्रमय प्रस्तुति का उपयोग करना चाहते हैं tree
शोर मचाया

2
लगभग आदर्श। find . -name "*.txt" -deleteयह पुनरावर्ती थियो प्रतीत नहीं होता है। सभी फ़ाइलों को हटा दिया गया, लेकिन उन निर्देशिकाओं को नहीं हटाया गया, जिन्हें सूचीबद्ध किया गया था-print
ऑस्कर गोडसन

1
@OscarGodson मान लें कि फ़ाइलों को हटाने के बाद निर्देशिकाओं को खाली छोड़ दिया गया था, तो आप उन्हें अपने साथ हटा सकते हैंfind . -type d -empty -delete
डेटागुगी

1
@OscarGodson - findउन निर्देशिकाओं को नहीं हटाएगा जिनमें अभी भी फाइलें ( rm dir/बिना समतुल्य -r) सम्‍मिलित हैं । आपको निर्देशिका को पहले खाली करना होगा - या ऐसा findकरने -exec rmके लिए उपयुक्त विकल्पों के साथ उपयोग करना होगा। जैसेfind . -depth -name "*.txt" -exec rm -r {} +
शालोम्ब

echo rm *.txtविधि का उपयोग करने से एक खामी लगती है। यह एक अनुलंब सूची के विपरीत एक संक्षिप्त सूची (पिछले एक के बाद एक फ़ाइल के साथ एक लंबी स्ट्रिंग) में परिणाम प्रस्तुत करता है। क्या कोई कार्य सूची (एक फ़ाइल प्रति पंक्ति) में प्रदर्शित करने के लिए आउटपुट प्राप्त करने का कोई तरीका है? (अद्यतन: मैं देख रहा हूँ कि findविधि ने वही किया है जो मैंने अनुरोध किया है। इसलिए मैं उसी के साथ
प्रेरित २०

16

तुम कह सकते हो:

rm -i

इसे इंटरेक्टिव मोड में चलाने के लिए, इसलिए rmआपको यह पुष्टि करने के लिए प्रेरित करेगा कि क्या प्रत्येक फ़ाइल को हटा दिया जाना चाहिए। आप प्रत्येक फ़ाइल का उत्तर केवल यह देखने के लिए दे सकते हैं कि कौन से प्रभावित होंगे।


8
यह बड़ी संख्या में फ़ाइलों के साथ मुश्किल है।
कोरी क्लेन

9
हाँ एन | rm -i # कम से कम टिप्पणी की लंबाई को पूरा करने के लिए
जोशुआ

4

आप उन lsसभी फ़ाइलों को सूचीबद्ध करने के लिए उपयोग कर सकते हैं जिन्हें rmनिम्न द्वारा हटाया जाएगा :

ls ../path/*.txt

यदि आपको उन फ़ाइलों को देखने के लिए सूचीबद्ध करने की आवश्यकता है जिन्हें एक पुनरावर्ती के साथ हटा दिया जाएगा rm, तो -Rध्वज का उपयोग करें ls:

ls -R ../path/*.txt

अच्छी बात। यद्यपि यदि आप घोंसले के शिकार के स्तर को जानते हैं तो आप इसे प्राप्त कर सकते हैंls */*/*.txt
वेनेट रेड्डी

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