मैं देखना चाहता हूं कि rm
लिनक्स में प्रदर्शन करने पर कौन सी फाइलें हटा दी जाएंगी । अधिकांश आदेशों में सिर्फ ऐसी जानकारी दिखाने के लिए सूखा रन विकल्प होता है, लेकिन मुझे ऐसा कोई विकल्प नहीं मिल सकता है rm
। क्या यह भी संभव है?
मैं देखना चाहता हूं कि rm
लिनक्स में प्रदर्शन करने पर कौन सी फाइलें हटा दी जाएंगी । अधिकांश आदेशों में सिर्फ ऐसी जानकारी दिखाने के लिए सूखा रन विकल्प होता है, लेकिन मुझे ऐसा कोई विकल्प नहीं मिल सकता है rm
। क्या यह भी संभव है?
जवाबों:
कहो कि आप चलाना चाहते हैं:
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
।
find . -name "*.txt" -delete
यह पुनरावर्ती थियो प्रतीत नहीं होता है। सभी फ़ाइलों को हटा दिया गया, लेकिन उन निर्देशिकाओं को नहीं हटाया गया, जिन्हें सूचीबद्ध किया गया था-print
find . -type d -empty -delete
find
उन निर्देशिकाओं को नहीं हटाएगा जिनमें अभी भी फाइलें ( rm dir/
बिना समतुल्य -r
) सम्मिलित हैं । आपको निर्देशिका को पहले खाली करना होगा - या ऐसा find
करने -exec rm
के लिए उपयुक्त विकल्पों के साथ उपयोग करना होगा। जैसेfind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
विधि का उपयोग करने से एक खामी लगती है। यह एक अनुलंब सूची के विपरीत एक संक्षिप्त सूची (पिछले एक के बाद एक फ़ाइल के साथ एक लंबी स्ट्रिंग) में परिणाम प्रस्तुत करता है। क्या कोई कार्य सूची (एक फ़ाइल प्रति पंक्ति) में प्रदर्शित करने के लिए आउटपुट प्राप्त करने का कोई तरीका है? (अद्यतन: मैं देख रहा हूँ कि find
विधि ने वही किया है जो मैंने अनुरोध किया है। इसलिए मैं उसी के साथ
तुम कह सकते हो:
rm -i
इसे इंटरेक्टिव मोड में चलाने के लिए, इसलिए rm
आपको यह पुष्टि करने के लिए प्रेरित करेगा कि क्या प्रत्येक फ़ाइल को हटा दिया जाना चाहिए। आप प्रत्येक फ़ाइल का उत्तर केवल यह देखने के लिए दे सकते हैं कि कौन से प्रभावित होंगे।
आप उन ls
सभी फ़ाइलों को सूचीबद्ध करने के लिए उपयोग कर सकते हैं जिन्हें rm
निम्न द्वारा हटाया जाएगा :
ls ../path/*.txt
यदि आपको उन फ़ाइलों को देखने के लिए सूचीबद्ध करने की आवश्यकता है जिन्हें एक पुनरावर्ती के साथ हटा दिया जाएगा rm
, तो -R
ध्वज का उपयोग करें ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
विकल्प के साथ ।