क्या ls हमेशा उन फ़ाइलों को सूचीबद्ध करेगा जिन्हें rm हटाएगा?


33

कुछ ऐसा जो मुझे लगता है कि मुझे निश्चित रूप से जानना चाहिए: अगर मैं ls <something>, प्रदर्शित की गई rm <something>फ़ाइलों को बिल्कुल हटा दूंगा ls? क्या ऐसी कोई परिस्थितियां हैं rmजो उन फ़ाइलों को हटा सकती हैं जो lsनहीं दिखाती थीं? (यह 18.04 बैश में है)

संपादित करें: जवाब देने वाले सभी को धन्यवाद। मुझे लगता है कि पूर्ण उत्तर सभी उत्तरों का एक संयोजन है, इसलिए मैंने "उत्तर" के रूप में सबसे अधिक मतदान वाले उत्तर को स्वीकार किया है।

अप्रत्याशित चीजें जो मैंने रास्ते में सीखी हैं:

  • ls उतना सीधा नहीं है जितना कि आप इसके तर्कों से निपटने में सोच सकते हैं
  • उबंटू, .bashrc उपनामों की स्थापना के साथ एक सरल संयुक्त राष्ट्र में ls
  • अपनी फ़ाइलों का नाम डैश के साथ शुरू न करें क्योंकि वे कमांड तर्क की तरह दिख सकते हैं, और एक -r का नामकरण इसके लिए पूछ रहे हैं!

8
मैं कुछ हैरान हूँ कि झंडा rmनहीं है --dry-run...
fkraiem

20
@Rinzwind की find -deleteतुलना में बेहतर क्यों होगा rm? आप कहते हैं "यही कारण है" , लेकिन यह मेरे लिए पूरी तरह से अस्पष्ट है कि इसका क्या मतलब है। यह भी ध्यान दें कि आपका findआह्वान वर्तमान निर्देशिका में सभी फ़ाइलों को पुन:rm हटा देगा , जहां बस तत्काल निर्देशिका में फ़ाइलों को हटा दिया जाएगा। साथ -name *ही नो-ऑप भी है। सब सब में, मैं आपकी सलाह से काफी हैरान हूँ ...
मार्सेल

3
@marcelm मुझे लगता है कि उपयोग करने के लिए सलाह findहै क्योंकि आप इसे चला सकते हैं, सभी फाइलें देख सकते हैं, और फिर उसी कमांड को चला सकते हैं -delete। चूँकि आप पहले से ही परिणाम देख चुके हैं find, इस बात को लेकर कोई अस्पष्टता नहीं होनी चाहिए कि क्या हटाया जाएगा (मैं वास्तव में इस बारे में अधिक विवरण एक उत्तर के रूप में सुनना चाहूंगा)
स्क्रिब्बलमैकर

5
@ स्क्रिप्‍बलमाकर "... आप इसे चला सकते हैं, सभी फाइलों को देख सकते हैं, और फिर उसी कमांड को चला सकते हैं -delete" - लेकिन यह चलाने से बेहतर कैसे है ls <filespec>, इसके बाद rm <filespec>(ओपी पहले से ही जानता है कि कैसे करना है)?
मार्सेलम

12
@ रिनविंड "यह कोरोबा के उत्तर को तुरंत हल करता है जहाँ एक फ़ाइल ls के बाद और rm से पहले बनाई जाती है।" - नहीं, यह नहीं है। यदि आप find ... -printपहले यह पुष्टि करने के लिए दौड़ते हैं कि कौन सी फाइलें हटाई जाएंगी, और फिर find ... -delete, आप अभी भी दो कमांड के बीच बनाई गई फाइलों को हटा देंगे। यदि आप दोनों का उपयोग करते हैं -printऔर -delete, आपको पुष्टि नहीं मिलती है, तो जो कुछ भी हटा दिया गया है उसकी एक-के-बाद की रिपोर्ट (और आप उपयोग भी कर सकते हैं rm -v)।
मार्सेलम

जवाबों:


40

खैर, दोनों lsऔर rmतर्क जो उनके लिए पारित कर रहे हैं पर कार्य करते हैं।

इन तर्कों एक सरल फ़ाइल इसलिए हो सकता है, ls file.extऔर rm file.extएक ही फाइल पर काम करते हैं और परिणाम स्पष्ट है (सूची फ़ाइल / फ़ाइल को नष्ट)।

यदि इसके बजाय तर्क एक निर्देशिका है, तो निर्देशिका ls directoryकी सामग्री को सूचीबद्ध करता है जबकि rm directoryवह काम नहीं करेगा (यानी rmबिना झंडे निर्देशिका को हटा नहीं सकते हैं, जबकि यदि आप ऐसा करते हैं rm -r directory, तो यह पुनरावर्ती सभी फ़ाइलों को directory और निर्देशिका को स्वयं हटा देता है )।

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

एक चरम उदाहरण के रूप में सोचें ls $(rand).txtऔर rm $(rand).txt, तर्क "समान" हैं, लेकिन परिणाम काफी अलग हैं!


3
इसके अलावा lsबनाम पर विचार करें rm *जहां "छिपी हुई" (डॉट) फाइलें हैं, हालांकि यह भी बिल्कुल उचित नहीं है क्योंकि मैंने लिखा नहीं था ls *। लेकिन rmअपने दम पर निरर्थक है इसलिए पूरी बात सेब और संतरे वास्तव में है। अगर मैं सही ढंग से समझ गया हूं, तो यह आपके जवाब का सार है, इतनी अच्छी नौकरी :)
मोनिका

5
lsबनाम पर एक और टिप्पणी rm -r: कमांड ls <directory>निर्देशिका के अंदर छिपी हुई फ़ाइलों को नहीं दिखाएगा, लेकिन छिपी हुई फ़ाइलों को भी हटा rm -r <directory> देगा
डैनियल वैगनर

1
@LightnessRacesinOrbit lsउन्हें सूचीबद्ध नहीं करेगा (जब तक कि यह उपनाम नहीं है ls -a), और rm *उन्हें हटा नहीं देगा (जब तक कि आपने dotglobसेट नहीं किया है)।
मोनिका

20

यदि आप ls foo*.txtबनाम जैसी किसी चीज के बारे में सोच रहे हैं rm foo*.txt, तो हां, वे उसी फाइलों को दिखाएंगे और हटाएंगे। शेल ग्लोब का विस्तार करता है, और इसे प्रश्न में कमांड को भेजता है, और कमांड सूचीबद्ध फाइलों पर काम करता है। एक उन्हें सूचीबद्ध करता है, एक उन्हें हटा रहा है।

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

यहाँ बड़ा मुद्दा दौड़ने से ls *या rm *एक निर्देशिका में है जिसमें एक डैश से शुरू होने वाले फ़ाइलनाम हैं । वे दो कार्यक्रमों में से कमांड लाइन का विस्तार होगा, क्योंकि अगर तुम उन्हें बाहर अपने आप को लिखा था, और lsले जाएगा -r, जबकि, मतलब "रिवर्स सॉर्ट क्रम" rmले जाएगा -rएक पुनरावर्ती हटाने मतलब करने के लिए। यदि आपके पास कम से कम दो स्तर गहरे हैं, तो अंतर मायने रखता है। ( ls *पहले स्तर की निर्देशिकाओं की सामग्री दिखाएगा, लेकिन rm -r *सब कुछ पहले के सबलेवल को भी अतीत कर देगा।)

कि बचने के लिए, एक प्रमुख के साथ अनुमोदक globs बारे में ./वर्तमान निर्देशिका इंगित करने के लिए, और / या एक डाल --ग्लोब से पहले विकल्प प्रसंस्करण के अंत का संकेत करने के लिए (यानी rm ./*या rm -- *)।

जैसे ग्लोब के साथ *.txt, यह वास्तव में एक मुद्दा नहीं है क्योंकि डॉट एक अमान्य विकल्प चरित्र है, और एक त्रुटि का कारण होगा (जब तक कि कोई व्यक्ति इसके लिए एक अर्थ का आविष्कार करने के लिए उपयोगिताओं का विस्तार नहीं करता है), लेकिन यह अभी ./भी वैसे भी सुरक्षित है ।


बेशक आप दो कमांड के लिए अलग-अलग परिणाम प्राप्त कर सकते हैं यदि आपने शेल के ग्लोबिंग विकल्पों को बदल दिया है, या कमांड के बीच फ़ाइलों को बनाया / स्थानांतरित / हटा दिया है, लेकिन मुझे संदेह है कि आप उन मामलों में से किसी का भी मतलब है। (सुरक्षित रूप से करने के लिए नई / स्थानांतरित फ़ाइलों से निपटना बेहद गड़बड़ होगा।)


1
धन्यवाद। यह पूरी कमांड लाइन सिंटैक्स के साथ एक समस्या को उजागर करता है: यदि आप उन फ़ाइलों को नाम देते हैं जो एक डैश से शुरू होती हैं जो आप खतरनाक जल में नौकायन कर रहे हैं। कौन जानता है कि भविष्य में आपके द्वारा उपयोग की जाने वाली फ़ाइलों के बारे में भूल जाने के बाद आप किस आदेश का उपयोग कर सकते हैं।
B.Tanner

1
@ बी.टेनर, हाँ। एक अर्थ में, समस्या यह है कि कमांड लाइन तर्क सिर्फ सादे तार हैं। यदि सिस्टम आज डिजाइन किया गया था, तो इसमें और अधिक संरचना हो सकती है ताकि निष्पादित कार्यक्रम को पता चल सके कि क्या एक तर्क को ध्वज माना जाना था या नहीं। अन्य समस्याएं भी हैं जो फ़ाइलनाम के बहुत ही ढाँचे से आती हैं। वहाँ बहुत गहन निबंध है कि dwheeler द्वारा , लेकिन मुझे चेतावनी देनी है कि इसे पढ़ने से चोट लगने वाली है। (या तो विस्तार से, या जो कुछ भी गलत हो सकता है, उसके
भयानक भाव से

3
मैं विरोध नहीं कर सकता, आपने इसे मुझे बेच दिया, मैं अब इसे पढ़ने के लिए तैयार हूं, समय की यादों के साथ मैं बहुत सारे फ़ाइलनामों के अंत में एक गाड़ी वापसी चरित्र प्राप्त करने में कामयाब रहा (यह देखने की कोशिश कर रहा था कि क्या मैं कर सकता हूं एक Windows बैच फ़ाइल का निर्माण करें जो एक bash स्क्रिप्ट के रूप में भी चल सकती है ... मैंने नहीं देखा कि वह आ रही है!)
B.Tanner

17

केवल क्या पर एक तरफ खोल व्यवहार, लेट्स का ध्यान छोड़कर rmऔर lsखुद को साथ सौदा कर सकते हैं। कम से कम एक मामला जहां lsदिखाया जाएगा कि rmनिर्देशिका अनुमतियाँ शामिल नहीं कर सकती हैं, और अन्य - विशेष निर्देशिका .और ..

फ़ोल्डर की अनुमति

rmएक निर्देशिका पर एक ऑपरेशन है, क्योंकि एक फ़ाइल को हटाकर, आप निर्देशिका सामग्री (या निर्देशिका प्रविष्टियों की लिस्टिंग के दूसरे शब्दों में बदल रहे हैं, क्योंकि d irectory फ़ाइलनाम और इनोडेस की सूची से अधिक कुछ नहीं है )। इसका मतलब है कि आपको एक निर्देशिका पर लिखने की अनुमति चाहिए। यहां तक ​​कि अगर आप फ़ाइल के मालिक हैं, तो निर्देशिका अनुमतियों के बिना आप फ़ाइलों को नहीं हटा सकते। उलटा भी सही है : rmफ़ाइलों को, दूसरों के स्वामी हो सकता है अगर आप निर्देशिका के मालिक हैं निकाल सकते हैं।

तो आप बहुत अच्छी तरह से एक निर्देशिका पर अनुमतियों को पढ़ सकते हैं और निष्पादित कर सकते हैं, जो आपको उदाहरण के लिए ls /bin/echo, केवल ठीक के भीतर निर्देशिका और दृश्य सामग्री को पार करने की अनुमति देगा , लेकिन आप rm /bin/echoतब तक नहीं कर सकते जब तक कि आप /bin अपने विशेषाधिकार के स्वामी या उसके साथ ऊंचा नहीं हो जाते sudo

और आप हर जगह इस तरह के मामले देखेंगे। यहाँ एक ऐसा मामला है: https://superuser.com/a/331124/418028


विशेष निर्देशिका '।' तथा '..'

एक और विशेष मामला है .और ..निर्देशिका। यदि आप करते हैं ls .या ls .., यह खुशी से आपको सामग्री दिखाएगा, लेकिन rm'आईएनजी उन्हें अनुमति नहीं है:

$ rm -rf .
rm: refusing to remove '.' or '..' directory: skipping '.'

15

यदि आप टाइप करते हैं ls *और फिर rm *, यह संभव है कि आप lsदिखाए गए से अधिक फ़ाइलों को हटा देंगे - वे छोटे समय अंतराल में lsऔर के शुरू होने के बीच में निर्मित हो सकते हैं rm


1
यह एक संभावित मामला है /tmp, जहां कई एप्लिकेशन अस्थायी फ़ाइलें बना सकते हैं, इसलिए दोनों कमांड में हमेशा एक संभावना है *। हालाँकि, कुछ एप्लिकेशन unlink()फाइल हैंडल को खुला रखते हुए फाइल को अनाम बना देते हैं, इसलिए यह दिखा सकता है ls *लेकिन rm *इसे पकड़ नहीं सकता है।
सेर्गेई कोलोडियाज़नी

1
@OrangeDog आप इस बिंदु को याद कर रहे हैं। हम दौड़ की स्थिति के बारे में बात कर रहे हैं
सर्जियो कोलोडियाज़नी 15

1
@OrangeDog मुझे इस बात की पुष्टि करनी होगी क्योंकि मैं अभी फ़ोन पर हूँ, लेकिन बिंदु अभी भी इस बात पर टिका *हुआ है कि क्या lsदिखा और क्या rmचल रहा है, इसके बीच अंतर है , क्योंकि बीच में निर्देशिका सामग्री की सूची बदल गई है।
सेर्गेई कोलोडियाज़नी

1
यहां तक ​​कि अगर आप केवल एक कमांड करते हैं, तो तर्कों का विस्तार करने और फिर उन्हें हटाने के बीच एक दौड़ की स्थिति है।
मोनिका

1
@ ऑरेंजडॉग I इससे सहमत हो सकता है। के रूप में वाइल्डकार्ड विस्तार मौजूदा फ़ाइल नाम पर काम करता है, हाँ, वाइल्डकार्ड का विस्तार करने वाले शेल के बीच एक दौड़ की स्थिति होती है, और एक कमांड इसे संसाधित करता है, इसलिए ls *वास्तव में पहले से चला गया फ़ाइल नाम दिखा सकता है।
सेर्गेई कोलोडियाज़नी

9

ls *और rm *ग्लोब के विस्तार के लिए जिम्मेदार नहीं हैं - यह शेल द्वारा कमांड में जाने से पहले किया जाता है।

इसका मतलब यह है कि आप विस्तारित फाइललिस्ट के साथ किसी भी कमांड का उपयोग कर सकते हैं - इसलिए मैं कुछ ऐसा उपयोग करूंगा जो जितना संभव हो उतना कम हो।

ऐसा करने का एक बेहतर तरीका (या कम से कम, एक और तरीका) मध्यम-पुरुष को छोड़ना है।

echo *आपको वही दिखाएगा जो आपकी rmआज्ञा के अनुसार होगा।


2
धन्यवाद, मुझे इस परिदृश्य में ls के बजाय प्रतिध्वनि का उपयोग करने का विचार पसंद है।
B.Tanner

3
या printf "%s\n" *रिक्त स्थान के साथ फ़ाइल नाम पर एक अस्पष्ट दृश्य प्राप्त करने के लिए। (या %qनई कहानियों और नियंत्रण पात्रों से निपटने के लिए, बदसूरत आउटपुट की कीमत पर भी।)
kkkachu

4

कैसा रहेगा:

$ mkdir what
$ cd what
$ mkdir -p huh/uhm ./-r
$ ls *
uhm
$ rm *
$ ls
-r
$ ls -R
.:
-r

./-r:

असल में वाइल्डकार्ड सामान के विस्तार के साथ शुरू -(या मैन्युअल रूप से दर्ज सामान के साथ शुरू -, लेकिन वह दिखता धोखा दे की तरह थोड़ा अधिक) द्वारा अलग ढंग से व्याख्या की जा सकती lsहै और rm


4

वहाँ रहे हैं किनारे मामलों में जहां क्या lsपता चलता है क्या नहीं है rmनिकाल देता है। एक चरम चरम, लेकिन सौभाग्य से सौम्य एक है अगर आप जो तर्क पास करते हैं वह एक निर्देशिका का एक प्रतीकात्मक लिंक है: lsआपको सिम्लिंक निर्देशिका में सभी फाइलें दिखाएगा, जबकि सिरिंज rmको हटा देगा, मूल निर्देशिका और इसकी सामग्री को अछूता छोड़ देगा:

% ln -s $HOME some_link
% ls some_link    # Will display directory contents  
bin    lib    Desktop ...
% rm some_link
% ls $HOME
bin    lib    Desktop ...

1
हुह। मेरे लिए ln -s $HOME some_link; ls some_linkआउटपुट some_link@, लेकिन मैं करने के लिए lsaliased है ls -F। जाहिरा तौर पर, -Fइसे हटाने के बजाय लिंक दिखाने के व्यवहार को बदल देता है। उम्मीद नहीं थी कि
21

वास्तव में! इसके अलावा ls -lउदाहरण लक्ष्य लिंक, नहीं गंतव्य के लिए ... वहाँ लिंक को ही निरीक्षण करने के लिए तरीके रहना होगा।
एलेक्सिस

1
प्रश्न के विकल्पों को जोड़ना भी कई को खोलता है possibilities-- मेरा उत्तर की असंशोधित व्यवहार के बारे में है lsऔर rm
एलेक्सिस

यदि आप कहते हैं ls some_link/,  ls -H some_linkया ls -L some_link, यह लिंक्ड-इन निर्देशिका को सूचीबद्ध करेगा, भले ही आप जोड़ दें -Fया -l। इसके विपरीत (सॉर्ट-ऑफ), -dअपनी सामग्री के बजाय एक निर्देशिका को देखने के लिए कहता है; तुलना ls -l /tmpऔर ls -ld /tmp
जी-मैन

ज़रूर, आप झंडे जोड़ सकते हैं जो के व्यवहार को बदलते हैं ls। आप मूल रूप से दिखा रहे हैं कि अलग-अलग झंडे वाले लोगों के साथ व्यवहार क्यों इस सवाल के लिए परेशान करने लायक नहीं है ...
एलेक्सिस

4

यदि आप lsइसके बजाय केवल करते हैं ls -a, तो हाँ rmछिपी हुई फ़ाइलों को हटा सकते हैं जिन्हें आपने lsबिना नहीं देखा है -a

उदाहरण :

इसके अनुसार :

dir_test
├── .test
└── test2

ls dir_test : केवल test2 प्रदर्शित करेगा

ls -A dir_test : test2 + .test प्रदर्शित करेगा

rm -r dir_test : सभी को हटा देगा (.test + test2)

मुझे उम्मीद है कि इससे आपको मदद मिलेगी।


क्या आप एक उदाहरण प्रदान कर सकते हैं? क्योंकि आम तौर पर, rm *dotfiles को नहीं हटाएगा। अगर ऐसा होता है, ls *तो उन्हें भी दिखाएंगे।
10

नहीं, ls *छिपी हुई फ़ाइलों को प्रदर्शित न करें।
देवहुगो

लेकिन हां यह थोड़ा उलझन में है, मैंने कुछ उदाहरण जोड़े।
देवहुगो

1
ls -aसूची जाएगा ., .., .testऔर test2। आप अपने उदाहरण का उपयोग करने के लिए बदलना चाह सकते हैं ls -A, जो कि ( और , केवल और केवल ) को छोड़कर सब कुछ सूचीबद्ध करता है । ....testtest2
जी-मैन का कहना है कि 'मोनिका' को

3

पहले से ही कई अच्छे उत्तर हैं, लेकिन मैं कुछ और गहरी जानकारी जोड़ना चाहता हूं।

अपने आप से सवाल पूछें: lsयदि आप लिखते हैं, तो कितने मापदंडों को पारित किया जाता है

ls *

...? ध्यान दें कि lsकमांड *को पैरामीटर नहीं मिलता है अगर कोई फाइल है जिसे *विस्तारित किया जा सकता है। इसके बजाय, शेल पहले कमांड को लागू करने से पहले ग्लोबिंग करता है, इसलिए lsकमांड को वास्तव में कई पैरामीटर मिलते हैं क्योंकि ग्लोबिंग द्वारा फाइल की गई फाइलें होती हैं। ग्लोबिंग को दबाने के लिए, पैरामीटर को कोट करें।

यह किसी भी कमांड के लिए सही है: echo *बनाम echo '*'

एक स्क्रिप्ट है, countparams.shप्रभाव का परीक्षण करने के लिए इसे कॉल करें । यह आपको बताता है कि कितने पैरामीटर पास हुए और उन्हें सूचीबद्ध किया गया।

#!/bin/bash
echo "This script was given $# parameters."
arr=( "$@" )
for ((i=0;i<$#;i++)); do
        echo "Parameter $((i+1)): ${arr[$i]}"
done

इसे निष्पादन योग्य बनाएं और चलाएं ./countparams.sh *। जानें इसके आउटपुट से!


1

ग्लोब दोनों बार एक ही तरह से विस्तार करेगा, यदि निर्देशिका सामग्री उन दो अलग-अलग समय पर समान है।


यदि आप वास्तव में जांचना चाहते हैं कि क्या हटाया जाएगा, उपयोग करें rm -i *.txt। यह आपको हटाने से पहले प्रत्येक फ़ाइल के लिए अलग से संकेत देगा (हटाने की कोशिश कर रहा है)।

यह दौड़ की स्थितियों के खिलाफ सुरक्षित रहने की गारंटी है:
        ls *.txt/ एक नई फ़ाइल बनाई गई है / rm *.txt
क्योंकि आपको हर फ़ाइल के लिए उसी प्रोग्राम द्वारा संकेत दिया जाता है जो निष्कासन कर रहा है।


यह सामान्य उपयोग के लिए बहुत बोझिल है, और यदि आप उर्फ rmकरते हैं rm -i, तो आप अपने आप को \rmया rm -fअक्सर उपयोग करते हुए पाएंगे । लेकिन यह कम से कम उल्लेख के लायक है कि दौड़ की स्थिति का समाधान है। (यह गैर-जीएनयू प्रणालियों के लिए भी पोर्टेबल है: पोसिक्स विकल्प rm(1)निर्दिष्ट करता -iहै ।)

एक अन्य विकल्प बैश ऐरे होगा: to_remove=(*.txt)फिर उपयोगकर्ता से पुष्टि करने के लिए कहें (शायद करने के बाद ls -ld -- "${to_remove[@]}"), फिर rm -- "${to_remove[@]}"। तो ग्लोब विस्तार केवल एक बार किया जाता है, और सूची को शब्दशः पास कर दिया जाता है rm

एक और व्यावहारिक रूप से प्रयोग करने योग्य विकल्प GNU rm -I( मैन पेज ) है, जो 4 से अधिक वस्तुओं को हटाने पर संकेत देता है। (लेकिन मैं आपको सूची नहीं दिखाता, कुल मिलाकर।) मैं alias rm='rm -I'अपने डेस्कटॉप पर उपयोग करता हूं।

यह एक आधा टाइप किए गए पैटर्न के साथ वसा-छूत वापसी के खिलाफ एक अच्छा सुरक्षा उपाय है जो बहुत अधिक मेल खाता है। लेकिन lsपहली बार का उपयोग आम तौर पर आपके द्वारा या किसी एकल-उपयोगकर्ता प्रणाली में निर्देशिका में अच्छा होता है, और जब पृष्ठभूमि प्रक्रियाएं नहीं होती हैं जो वहां अतुल्यकालिक रूप से नई फाइलें बना सकती हैं। वसा-छूत से बचाव के लिए, rm -rf /foo/bar/bazबाएं से दाएं टाइप न करें । rm -rf /विशेष-आवरण है, लेकिन rm -rf /usrनहीं है! -rfभाग छोड़ें , या शुरू करें ls, और rm -rfपथ टाइप करने के बाद ही भाग जोड़ें ।

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