उपयोगकर्ता निर्देशिका में सभी अस्थायी फ़ाइलों का पता लगाएँ और हटाएं


12

मैं विम का बहुत उपयोग करता हूं, और मेरे क्षेत्र में बिजली की विफलता बहुत है। तो परिणामी मैं *.swpअपने पीसी पर बिखरी हुई कई फाइलें हैं।

मैं के उपनाम चाहते rmआदेश के साथ सभी फ़ाइलों को या तो निकाल देता है .swp, ~, .netrwhist, .logया .bakएक्सटेंशन प्रणाली विस्तृत (या कम से कम अपनी होम निर्देशिका में) । जब मैं चालू हूं तब भी कमांड को फाइल सिस्टम वाइड / होम डायरेक्टरी को डिलीट करना चाहिए ~/Desktop

मैं इसे कैसे लागू कर सकता हूं?


कैसे के बारे में:find ./ -name \*\~ | xargs /bin/rm
इमानुएल बर्ग

इसके अलावा, यदि ~फ़ाइलें आपको बग करती हैं, तो उपनाम अन्य को देता है ls -B। कम से कम आप उन्हें नहीं देखेंगे।
इमानुएल बर्ग

@EmanuelBerg find ./ -name \*\~ | xargs /bin/rmतब काम नहीं करता जब मैं ~ / डेस्कटॉप पर हूं और ~होम डायरेक्टरी में कोई फाइल है। मेरा प्रश्न देखिये, मैंने क्या कहा।
संतोष कुमार

3
तीन शब्द: निर्बाध बिजली की आपूर्ति । मैं एक के बिना कंप्यूटर चालू नहीं करता।
cjm

2
@ संतोष, तो आपको बेहतर यूपीएस की जरूरत है। एक न्यूनतम रनटाइम 5 मिनट का होना चाहिए। 8 सेकंड भी आपको कंप्यूटर बंद करने का समय नहीं देता (जैसा कि आपने स्पष्ट रूप से देखा है)।
cjm

जवाबों:


11

यह एक नाम पर समाप्त होने के साथ सभी फाइलों को नष्ट करेगा .swp, ~, .netrwhist, .logया .bakकहीं भी अपने घर निर्देशिका के अंतर्गत। कोई संकेत नहीं, कोई पुष्टि नहीं, कोई पुनर्प्राप्ति नहीं, फ़ाइलें हमेशा के लिए चली गईं।

find ~ -type f \( -name '*.swp' -o -name '*~' -o -name '*.bak' -o -name '.netrwhist' \) -delete

(मैं उद्देश्यपूर्ण रूप से चूक गया *.logक्योंकि यह खतरनाक लगता है, यह अस्थायी फ़ाइलों के लिए एक सामान्य विस्तार नहीं है और इस नाम के साथ बहुत सारे गैर-अस्थायी हैं।)

यदि आपका OS Linux नहीं है, तो इसके -deleteद्वारा प्रतिस्थापित करें -exec rm {} +

शायद आपको directoryविकल्प सेट करके अपनी स्वैप फ़ाइलों को एकल निर्देशिका में कॉन्फ़िगर करना चाहिए :

set dir=~/tmp/vim-swap-files//,/var/tmp//

पहले डायरेक्टरी बनाएं। //अंत में स्वैप फ़ाइल नाम, मूल फ़ाइल की निर्देशिका स्थान शामिल हैं ताकि विभिन्न निर्देशिका में एक ही नाम के साथ फ़ाइलों को एक दुर्घटना का कारण नहीं है बनाता है।

आप backupdirविकल्प के साथ बैकअप फ़ाइलों के लिए एक ही काम कर सकते हैं , हालांकि यह बहुत कम समझ में आता है।

यदि आप Emacs का उपयोग करते हैं, तो auto-save-file-name-transformsहर फाइल को एक ही डायरेक्टरी में इंगित करने के लिए सेट करें।

(setq auto-save-file-name-transforms
      '("\\`.*\\'" "~/tmp/emacs-auto-save-files/\\&" t))

1

यदि आप विशेष रूप से विम फ़ाइलों को लक्षित कर रहे हैं, तो मैं आपको backupdirचर का उपयोग करने की सलाह दूंगा। :h backupdirकहते हैं:

'backupdir' 'bdir'      string  (default for Amiga: ".,t:",
                                 for MS-DOS and Win32: ".,c:/tmp,c:/temp"
                                 for Unix: ".,~/tmp,~/")
                        global
                        {not in Vi}
        List of directories for the backup file, separated with commas.
        - The backup file will be created in the first directory in the list
          where this is possible.  The directory must exist, Vim will not
          create it for you.
        [... snip ...]

मैं अपने .vimrc में इस लाइन का उपयोग करता हूं:

set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp

इसके अलावा आपको ~ / .vim-tmp निर्देशिका बनाने की आवश्यकता है यदि यह पहले से मौजूद नहीं है, क्योंकि यह आपके लिए नहीं बनाता है।


ठीक है, यह उपयोगी है। लेकिन gedit *~फाइलें जेनरेट करता है।
संतोष कुमार

0

लघु उत्तर हटाए जाने वाले अस्थायी को समाप्त करता है ~

find . -type f \( -iname "*~" \) -delete

या अन्य .swap आदि।

find . -type f \( -iname "*.swp" \) -delete
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.