Tmutil के साथ विशिष्ट फ़ाइल / फ़ोल्डर के सभी बैकअप हटाएं


9

मैं कमांड लाइन के माध्यम से विशिष्ट वस्तुओं के सभी बैकअप को हटाने की कोशिश कर रहा हूं। मैं निम्नलिखित चरणों के माध्यम से GUI का उपयोग करके इसे पूरा कर सकता हूं:

  1. टाइम मशीन दर्ज करें
  2. फ़ाइल को हटाने के लिए नेविगेट करें
  3. राइट क्लिक (या खोजक में गियर आइकन पर क्लिक करें) और "सभी बैकअप हटाएं ..." चुनें

मैं कमांड लाइन का उपयोग करके इसे कैसे दोहरा सकता हूं tmutil? विशेष रूप से, बड़ी फ़ाइलों का पता लगाने के लिए बैकअप लूप का उपयोग करते समय, टर्मिनल का उपयोग करना आसान होगा (क्योंकि मुझे हर समय TimeMachine दर्ज करने की आवश्यकता नहीं है मैं किसी विशेष फ़ाइल को हटाना चाहता हूं और फाइंडर का उपयोग करके इसे नेविगेट कर सकता हूं, और फिर इसे हटाने के लिए टर्मिनल पर ड्रॉप करें)।

मैं उम्मीद कर रहा था कि मैं कुछ इस तरह का उपयोग कर सकता हूं:

sudo tmutil delete /path/to/file

हालाँकि यह मुझे त्रुटि देता है:

"अवैध विलोपन लक्ष्य (त्रुटि 22)" `

यह ठीक काम करता है:

sudo tmutil delete /Volume/Backups.backupdb/<machinename>

और यह भी:

sudo tmutil delete /Volume/Backups.backupdb/<machinename>/<specificbackup>

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


1
@stephenwade मैं देख रहा हूँ कि आपने इस प्रश्न पर एक इनाम जोड़ा, धन्यवाद मैं स्पष्ट नहीं हूँ कि दूसरों के सवालों पर कैसे काम होता है।
जन

2
आप बाउंटी पर प्रभाव डाले बिना, जो भी आपको पसंद हो, स्वीकार कर सकते हैं (या स्वीकार नहीं कर सकते हैं)।
nohillside

जवाबों:


7

मुझे यह SU Q & A शीर्षक मिला: मैं कमांडलाइन का उपयोग करके टाइम मशीन फ़ाइलों को कैसे हटा सकता हूं जो सीएलआई से विशिष्ट फ़ाइलों को हटाने के लिए एक विधि प्रदर्शित करता है। इस उत्तर ने एक ऐसी विधि को उजागर किया, जो यह चाहती है कि आप क्या चाहते हैं:

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

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

$ cd /Volumes/WD\ 500G\ USB/Backups.backupdb/csm-laptop
$ ls -li */Macintosh\ HD/Users/csm/vm.img
...
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-005636/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-015812/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-030036/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-041307/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 Latest/Macintosh HD/Users/csm/vm.img

फ़ाइल को हटाने की विधि टाइम मशीन नामक एक सहायक सीएलआई टूल का उपयोग करती है जिसे bypass:

$ sudo bypass rm -f */Macintosh\ HD/Users/csm/vm.img

बाईपास का स्थान

चूंकि bypassटाइम मशीन को एक सहायक स्क्रिप्ट माना जाता है, इसलिए यह आमतौर पर आपके स्थान पर नहीं है $PATH। इसलिए आपको निष्पादन योग्य के लिए पूर्ण पथ निर्दिष्ट करने की आवश्यकता होगी। इसके अतिरिक्त Apple ने इसे macOS के विभिन्न संस्करणों के लिए स्थानांतरित कर दिया है।

$ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass \
    rm -rfv /Volumes/[disk]/Backups.backupdb/[path]

10.8 माउंटेन लायन में, बाईपास 'हेल्पर्स' में चला गया:

$ /System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass

10.10 योसेमाइट में, बाईपास यहां चला गया:

$ /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass

संदर्भ


यह वास्तव में वैसा ही दिखता है जैसा मैं था। स्पष्ट करने के लिए: "हर स्नैपशॉट से" आपका मतलब "हर बैकअप से कड़ी को हटाकर", है ना? और कमांड में वाइल्डकार्ड का उपयोग करना sudo bypass rm -f */Macintosh\ HD\Users\csm\vm.imgसुनिश्चित करता है कि यह सब एक बार में पूरा किया जाता है?
जनवरी

1
@Jan वाइल्डकार्ड छवि वाले सभी दिनांकित फ़ोल्डरों तक विस्तारित rmहोने के बाद चलता है cd /Volumes/DISK/Backups.backupdb/MACHINE। मैंने उत्तर में एक \\ - /टाइपो तय किया है ।
nohillside

2
Yaaaaaasssss! मैं वर्षों से इसे खोज रहा था, कुछ कम महत्वपूर्ण बैकअप पर परीक्षण करूंगा क्योंकि मैं चल रहे बैकअप के लिए बैकअप गंतव्य की अखंडता बनाए रखने में सबसे अधिक दिलचस्पी रखता हूं। apple.stackexchange.com/questions/180214/...
bmike

2
@bmike कृपया टिप्पणी करें और मुझे बताएं कि आपको क्या मिल रहा है। मेरे पास कुछ मैक भी हैं जिन्हें मुझे इस पर करने की आवश्यकता है।
स्टीफनवेड

मैं @stephenwade करूंगा - यह परीक्षण करने के लिए मेरे पास खाली समय होने तक एक या दो सप्ताह हो सकते हैं। ऐसा लगता है bypassकि वास्तव में मैं अपने उपकरण के लिए आवश्यक स्केलपेल है। मैं तेजी से या अजगर में लपेट के लिए तो यह उपयोग करने के लिए आसान है करना चाहते हैं, लेकिन अगर मैं खोल करने के लिए वापस हम देखेंगे
bmike

2

के अनुसार man tmutil, tmutil deleteकमांड का उपयोग एक या एक से अधिक स्नैपशॉट , मशीन निर्देशिका या बैकअप स्टोर को हटाने के लिए किया जा सकता है । समान मैन पेज की शुरुआत में शब्दों को परिभाषित किया गया है:

  • स्नैपशॉट : मशीन निर्देशिका के अंदर एक निर्देशिका जो एक कंप्यूटर के एक ही प्रारंभिक या वृद्धिशील बैकअप का प्रतिनिधित्व करती है (जैसे /Volumes/Chronoton/Backups.backupdb/thermopylae/2011-07-03-123456)
  • मशीन निर्देशिका : एक बैकअप स्टोर के अंदर एक निर्देशिका जिसमें किसी विशेष कंप्यूटर के लिए सभी बैकअप होते हैं (जैसे /Volumes/Chronoton/Backups.backupdb/thermopylae)
  • बैकअप स्टोर : बैकअप डिस्क के मूल में शीर्ष-स्तर "Backups.backupdb" निर्देशिका (उदा /Volumes/Chronoton/Backups.backupdb)

तो ऐसा लगता है मानो दुर्भाग्य से tmutilस्नैपशॉट के भीतर विशिष्ट वस्तुओं को हटाने के लिए उपयोग करना संभव नहीं है ।

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