मैं कमांडलाइन का उपयोग करके टाइम मशीन फ़ाइलों को कैसे हटा सकता हूं


68

मैं rm का उपयोग करके अपने टाइम मशीन विभाजन से कुछ फ़ाइलों / निर्देशिकाओं को हटाना चाहता हूं , लेकिन ऐसा करने में असमर्थ हूं। मुझे पूरा यकीन है कि समस्या बैकअप में फ़ाइलों पर एक्सेस कंट्रोल विस्तारित विशेषताओं के कुछ प्रकार से संबंधित है, लेकिन पता नहीं है कि काम करने के लिए आरएम प्राप्त करने के लिए उन्हें ओवरराइड / अक्षम कैसे करें । मुझे मिलने वाली त्रुटि का एक उदाहरण है:

% sudo rm -rf Backups.backupdb/MacBook/Latest/MacBook/somedir
rm: Backups.backupdb/MacBook/Latest/MacBook/somedir: Directory not empty
rm: Backups.backupdb/MacBook/Latest/MacBook/somedir/somefile: Operation not permitted

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


मैं पास हो गया हूं। सबसे पहले, मुझे अपने टाइम मशीन डिस्क पर एसीएल को निष्क्रिय करने की आवश्यकता थी। पहले, कोई ऐसा करने के लिए fsaclctl का उपयोग करता था, लेकिन स्नो लेपर्ड में यह शामिल नहीं है। मैंने OSX के पुराने संस्करण से बाइनरी की एक प्रति पकड़ ली और इसे चलाया:% sudo fsaclctl -p / Volumes / tmvol -d फिर मैंने "सूडो rm -rf" का उपयोग करके एक निर्देशिका निकालने की कोशिश की, लेकिन फिर भी मुद्दों में भाग गया कुछ फाइलें (हालांकि अन्य ठीक हो गईं)। विशेष रूप से, यह नरम लिंक पर विफल रहा। बहुत अजीब। प्लस साइड पर, लिंक लगभग कोई स्थान नहीं लेते हैं। नकारात्मक पक्ष पर, मेरे पास अभी भी निर्देशिकाएं चिपकी हुई हैं।
टिम

ऐसा लगता है कि स्नैपशॉट, या आपके जैसे स्नैपशॉट में फ़ोल्डर हटाने पर स्वीकृत उत्तर काफी खतरनाक है rm -r Backups.backupdb/MacBook/Latest/MacBook/somedir; अगर आप सहमत हैं, तो कृपया अर्ने का जवाब स्वीकार करें?
अर्जन

जवाबों:


115

"ऑपरेशन की अनुमति नहीं है" त्रुटियों के आसपास काम करने के लिए, टाइम मशीन सेफ्टी नेट "बाईपास" प्रोग्राम का उपयोग करें:

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

विशिष्ट स्नैपशॉट को हटाने के लिए इसका उपयोग करते समय सावधान रहें : जैसे ही टाइम मशीन हार्ड लिंक का उपयोग करता है, rm -rफ़ोल्डर्स पर उपयोग करने से उसी मशीन के पुराने और नए स्नैपशॉट भी प्रभावित हो सकते हैं । ( tmutil deleteकिसी विशिष्ट स्नैपशॉट को सुरक्षित रूप से हटाने के लिए संदर्भित करने वाले अन्य उत्तर देखें ।) एक मशीन के लिए सभी स्नैपशॉट rmको हटाने के लिए उपयोग करना हालांकि ठीक है। और इसलिए एक विशिष्ट फ़ाइल को हटाने के लिए उपयोग किया जा रहा है, जो आपके द्वारा निर्दिष्ट स्नैपशॉट से केवल उस हार्ड-लिंक की गई फ़ाइल को हटा देगा, यह मानते हुए कि फ़ाइल हार्ड-लिंक्ड निर्देशिका में नहीं है, तब आप वास्तव में फ़ाइल को सभी से हटा देंगे उन हार्ड-लिंक निर्देशिका।rm


+1 !! इससे मुझे मदद मिली। मैंने दूसरों की कोशिश भी नहीं की क्योंकि यह "सही तरीका" जैसा दिखता था और वास्तव में, इसने मुझे आगे के प्रश्नों के साथ समस्या को हल करने की अनुमति दी। धन्यवाद!
13

मैंने आपको केवल +1 करने के लिए एक खाता बनाया है। मैं इसके लिए एक बेहतर समाधान की तलाश में था, और यह वह था। यह मुझे पागल कर रहा था। धन्यवाद।
CWSpear

3
बहुत बढ़िया। यह काम। (हालांकि मैं कुछ सौ हजार फाइलों में से प्रत्येक के लिए एक प्रविष्टि देखने से बचने के लिए 'v' विकल्प को छोड़ देता हूं):sudo ...bypass rm -rf /Volumes/...
ब्रेंट फाउस्ट

6
टाइम मशीन फ़ाइलों के प्रबंधन के लिए यह एक अत्यंत खतरनाक तरीका है; टाइम मशीन हार्ड-लिंक्ड निर्देशिकाओं का उपयोग उन फ़ोल्डरों को संदर्भित करने के लिए करती है जो पिछले बैकअप के बाद से नहीं बदले हैं, हालांकि rmप्रक्रिया इनको समझ नहीं पाती है और इन लिंक का पालन करेगी और उनसे फाइलें निकाल देगी। इसका मतलब है कि आप संभावित रूप से उन फ़ाइलों को हटा सकते हैं जो आपके द्वारा चुने गए पुराने और नए बैकअप में हैं, संभवतः बैकअप के लिए अपूरणीय क्षति हो सकती है। Arne Stenström के उपयोग की सिफारिश tmutilअब तक बेहतर समाधान है।
हरविकिंक

1
Haravikk की टिप्पणी पर थोड़ा विस्तार करने के लिए: rmहार्ड-लिंक्ड फ़ाइलों का उपयोग करना ठीक है, लेकिन हार्ड-लिंक्ड फ़ोल्डरों के लिए यह नहीं है। कैंट के उत्तर में इसी समस्या का उल्लेख है। और ओएस एक्स में एक निर्देशिका के लिए हार्डलिंक बनाने के लिए यूनिक्स कमांड क्या है? किसी ने 2010 में 10.5 के लिए लिखा था: "हटाना एक अलग कहानी है: यदि आप इसके बारे में सामान्य तरीके से निर्देशिकाओं को हटाने के लिए जाते हैं, तो आप सामग्री हटा देंगे। इसलिए आपको निर्देशिका को" अनलिंक "करना होगा: unlink new_hard_link"। इसलिए किसी दिए गए मशीन के सभी बैकअप (स्नैपशॉट) को हटाने के लिए इसका उपयोग करें ।
अर्जन

26

BLUF (निचला रेखा ऊपर-सामने):

sudo tmutil delete snapshot-dir


का उपयोग करते हुए एक फ़ोल्डर पदानुक्रम से सभी एसीएल दूर करने के लिए फ़ाइलों और टाइम मशीन के दशक में फ़ोल्डरों पर काम नहीं करता Backups.backupdb की वजह से, टीएम सेफ्टी नेट तंत्र और मापदंड इस में वर्णित 318 टेक जर्नल पोस्ट (लेकिन संभवतः नहीं वास्तव में बताया गया है) ।     (एरिक डब्ल्यू के जवाब में उल्लिखित सेफ्टी नेट को देखने से सीखने से पहले (जो काम करता है), मैंने केवल एक टीएम बैकअप के सबफ़ोल्डर से क्लोन किए गए फ़ोल्डर पर परीक्षण किया था, और वहां चामोद ने काम किया था। लेकिन वास्तविक रूप से एक फ़ोल्डर में चामोड की कोशिश करना। TM बैकअप "ऑपरेशन की अनुमति नहीं है" त्रुटि देता है।)sudo chmod -R -N folder

संभव उपयोग:
    मैक ओएस 10.7+ में, एक टमटिल कमांड है (जो मैंने कोशिश नहीं की है, क्योंकि मैं अभी भी हिम तेंदुए पर हूं)। इसमें एक डिलीट वर्ब है, जो विवरण के अनुसार "बैकअप से स्नैपशॉट को हटा सकता है जो कि द्वारा नहीं बनाया गया था, या वर्तमान मशीन द्वारा दावा नहीं किया जाता है" (जहां एक "स्नैपशॉट" एक दिनांकित फ़ोल्डर है जो एकल वृद्धिशील बैकअप का प्रतिनिधित्व करता है)। यह मेरे लिए स्पष्ट करता है, तो इसका मतलब है कि यह नहीं है नहीं कर सकते हैं स्नैपशॉट जो हटाना कर रहे हैं वर्तमान मशीन द्वारा द्वारा किए गए या दावा किया है। (?)


2
वास्तव में, tmutil उपयोगी है, और आपको बैकअप ( tmutil delete /Volumes/DISK/Backups.backupdb/HOST/DATE_FOLDER) को हटाने की अनुमति देगा । हालाँकि, आपको अभी भी "Backups.backupdb" फ़ोल्डर को हटाने के लिए एरिक के बाईपास ट्रिक की आवश्यकता है।
बजे

मेरे OSX 10.8.3 (माउंटेन लायन) को बाईपास की आवश्यकता नहीं थी। बस sudo tmutil delete <snapshot-dir>। लोकप्रिय bypass rmउत्तर पुराना है।
जॉन मी

क्या tmutilस्नैपशॉट से सिर्फ कुछ फ़ाइलों को हटाने के लिए उपयोग करना संभव है ? यह मेरे लिए काम नहीं किया ( Invalid deletion target (error 22)) तो मैं bypassइसके बजाय चला गया ।
रॉबर्ट तुपेलो-श्नाइक

BLUF के लिए +1। क्या आपको वह (पूरी तरह से भयानक) प्रबंधक-उपकरण मिला है? :)
Olie

इसके अलावा: मैं एक Backups.backupdbनिर्देशिका के संदर्भ ढूंढता रहता हूं जो मैं अपने बैकअप ड्राइव (टाइम कैप्सूल) पर नहीं देख रहा हूं। मेरे पास सिर्फ फॉर्म की चीजें हैं MachineName.sparsebundle। क्या स्वरूप बदल गया? मैं टीएम के डिलीट बैकअप कमांड का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह कई घंटों के लिए 99.99% प्रगति बार पर अटक गया है।
ओली

12

bypassपुराने बैकअप को हटाने के लिए कमांड का उपयोग करने के बारे में चेतावनी : यदि हटाए गए बैकअप में फ़ोल्डर्स हैं जो पहले या बाद के बैकअप में समान हैं, तो फाइलें पहले या बाद के बैकअप से भी हटा दी जा सकती हैं !

टाइम मशीन न केवल अपरिवर्तित फ़ाइलों के लिए हार्ड लिंक का उपयोग करती है, बल्कि उन फ़ोल्डरों के लिए हार्ड लिंक का भी उपयोग करती है जिसमें कोई भी फाइल नहीं जोड़ी गई, बदली गई या बिल्कुल भी हटा दी गई। इसका परिणाम कुछ इस प्रकार है:

/2014-11-06/folder/file1
                  /file2
                  /file3
/2014-11-13/folder/file1 = hard link to file /2014-11-06/folder/file1
                  /file2 (changed; new inode)
                  /file3 = hard link to file /2014-11-06/folder/file3
/2014-11-20/folder/ = hard link to folder /2014-11-13/folder/
/2014-11-27/folder/ = hard link to folder /2014-11-20/folder/

उपरोक्त के साथ, किसी भी फ़ाइल को हटाना /2014-11-06/folder/ठीक है, और केवल उस दिनांक के लिए बैकअप को प्रभावित करता है। हार्ड लिंक संदर्भ मायने रखता है, कम कर रहे हैं तो " inode के लिए" file2निकाल दिया जाएगा, लेकिन के लिए inodes file1और file3अभी भी 1 के एक संदर्भ गिनती होगा बाद में बैकअप के कारण। इसलिए, rm -R /2014-11-06यह भी ठीक है।

हालाँकि, किसी भी फ़ाइल को या तो हटा रहा है /2014-11-13/folder/, /2014-11-20/folder/या /2014-11-27/folder/प्रभावी रूप से उन सभी 3 फ़ोल्डरों से हटा देगा।

समस्या यह है कि rm -Rहार्ड-लिंक किए गए फ़ोल्डरों की परवाह नहीं है। यह बस किसी भी हार्ड-लिंक्ड फ़ोल्डर को ढूंढता है, जो अपनी सभी फ़ाइलों को साहसपूर्वक हटा देता है, और फिर खाली फ़ोल्डर को हटा देता है।

इसलिए: पुराने बैकअप को हटाते समय किसी हार्ड-लिंक्ड फ़ोल्डर में पुनरावृत्ति नहीं होनी चाहिए और इसकी सामग्री को हटा देना चाहिए। इसके बजाय, किसी को केवल फ़ोल्डर के लिए हार्ड लिंक को हटा देना चाहिए । इसलिए, Arne के उत्तर में बताए गएrm -R उपयोग के बजाय ।tmutil delete

एक तरफ के रूप में, ऐसा लगता है कि ओएस एक्स unlinkकमांड का उपयोग फ़ोल्डर्स पर नहीं किया जा सकता है : "केवल एक तर्क, जो एक निर्देशिका नहीं होना चाहिए, आपूर्ति की जा सकती है" । OS X API हार्ड-लिंक्ड फ़ोल्डर्स को हटा सकता है, और इसलिए GNU Coreutils , जैसे Homebrew का उपयोग करके इंस्टॉल किया जा सकता है ।

अंत में, उपरोक्त सभी को साबित करने के लिए, एक परीक्षण-केस (OSX 10.6.8):

sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist

ध्यान दें कि प्रत्येक घटना के लिए लिंक की संख्या 2 (दूसरा कॉलम) है। आइए पहली घटना को दूर करें:

sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist 
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist

इसलिए, फ़ाइलों में से एक को अनलिंक करने के बाद, प्रत्येक घटना के लिए लिंक की संख्या 1 तक गिर गई, हालांकि फ़ाइल को अभी भी 3 बार दिखाया गया है। अभी तक कोई समस्या नहीं। पहली घटना फिर से निकालें:

sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist 
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
ls: 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist: No such file or directory

अब सब छूट गए। जाहिरा तौर पर फ़ाइल TopSites.plistको अंतिम बार 2014-11-06 में बदल दिया गया था और 2014-11-13 को हार्ड-लिंक किया गया था, क्योंकि Safariफ़ोल्डर में कुछ अन्य फाइलें जोड़ी गईं, बदल दी गईं या हटा दी गईं । अगला, Safariफ़ोल्डर की सामग्री बाद के दो बैकअपों में नहीं बदली, इसलिए 2014-11-20 और 2014-11-27 पर Safariफ़ोल्डर पिछले बैकअप के लिए हार्ड-लिंक किया गया था।

वास्तव में, 4 फ़ोल्डर्स केवल 2 इनोड (पहले कॉलम) का उपयोग करते हैं:

sh-3.2# ls -lFaid 2014-11*/Users/USERNAME/Library/Safari/
648651968 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:06 2014-11-06-012454/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-13-024438/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-20-014044/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-27-025033/Users/USERNAME/Library/Safari//

1
कुछ पृष्ठभूमि: फ़ाइलों के लिए , हार्ड लिंक अपेक्षा के अनुरूप काम करते हैं; केवल वह कठिन लिंक जिसे आप हटाना चाहते हैं, हटा दिया गया है। जैसे: touch file1; ln file1 file2; ln file2 file3; ls -li; rm file2; ls -liकेवल एक हार्ड लिंक को हटा देगा। लेकिन फ़ोल्डर्स के लिए , ओएस एक्स में एक निर्देशिका के लिए हार्डलिंक बनाने के लिए यूनिक्स कमांड क्या है? किसी ने 2010 में 10.5 के लिए लिखा था: "हटाना एक अलग कहानी है: यदि आप इसके बारे में सामान्य तरीके से निर्देशिकाओं को हटाने के लिए जाते हैं, तो आप सामग्री हटा देंगे। इसलिए आपको निर्देशिका को " अनलिंक " करना होगा : unlink new_hard_link"। यह शायद अभी भी मान्य है।
अर्जन

unlink(10.6.8 में) का मैन पेज कहता है कि इसका उपयोग निर्देशिकाओं पर नहीं किया जा सकता है When the utility is called as unlink, only one argument, which must not be a directory, may be supplied:।
कैंट

हम्म, रहस्य। इससे भी अधिक, आपका उत्तर महत्वपूर्ण है: [bypass] rm -rहार्ड-लिंक्ड निर्देशिकाओं पर उपयोग न करें । (लेकिन मुझे आपको यह समझाने की ज़रूरत नहीं है।)
अर्जन

मैंने अभी थोड़ा और प्रयोग किया है। रनिंग bypass unlink FILEके समान (अनपेक्षित?) परिणाम है bypass rm FILE। समान बैकअप सभी बैकअप से हटा दिया गया है, न कि केवल एक ही स्थान जो निर्दिष्ट किया गया था। और, unlinkतर्क के रूप में एक निर्देशिका या एक से अधिक फ़ाइल नहीं ले जाएगा (10.6.8 सर्वर; लेकिन, मुझे नहीं लगता कि यह नए ओएस संस्करणों के माध्यम से बदल गया होगा)
केंट

वाह, मैं आपके द्वारा काफी आश्चर्यचकित हूं bypass rm FILEऔर bypass unlink FILEसभी समान फ़ाइलों को हटा रहा हूं , जो कि किसी के लिए touch file1; ln file1 file2; ln file2 file3; ls -li; unlink file2; ls -liन तो देखता है , न ही मैच करता है touch file1; ln file1 file2; ln file2 file3; ls -li; /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass unlink file2; ls -li। मैं एक बैकअप से कुछ निकालने के लिए नहीं जा रहा हूँ ...
Arjan

3

नोट: एरिक डब्ल्यू द्वारा उल्लिखित "टीएम सेफ्टी नेट" के कारण, यह उत्तर टाइम मशीन बैकअप के मामले में काम नहीं करता है, जो विशेष रूप से प्रश्न से संबंधित है। लेकिन ज्यादातर हर दूसरे मामले के लिए, एसीएल से छुटकारा पाने के बारे में जानकारी प्रासंगिक है।


पुराने OS से कॉपी किए गए ACL टूल का उपयोग करने की कोई आवश्यकता नहीं है।

ls -leACL देखने और chmodउन्हें बदलने के लिए उपयोग करें।

अधिक जानकारी के लिए, टाइप करें man chmodऔर "ACL हेरफेर विकल्प" के तहत देखें।

फ़ोल्डर पदानुक्रम से सभी ACL को निकालने का कमांड है:

chmod -R -N foldername

2

टाइम मशीन rspinghot की तरह काम करती है। यह प्रत्येक नए बैकअप के लिए हार्ड लिंक का एक पेड़ बनाता है। पिछले बैकअप में पहले से मौजूद फ़ाइलों के लिए हार्ड लिंक बहुत कम अतिरिक्त स्थान का उपयोग करते हैं। केवल जब किसी फ़ाइल का अंतिम हार्ड लिंक हटाया जाता है, तो फ़ाइल वास्तव में फाइल सिस्टम से हटा दी जाती है।

संपूर्ण व्यक्तिगत बैकअप को हटाने से कोई नुकसान नहीं होगा। आप केवल हार्ड लिंक हटा रहे हैं। कोई अन्य बैकअप प्रभावित नहीं होगा। लेकिन यह tmutil के माध्यम से पूरा किया जा सकता है।

एक परिदृश्य जिसमें यह सुरक्षा को बायपास करने के लिए आवश्यक हो सकता है, सभी बैकअप से एक विशिष्ट फ़ाइल को हटाने के लिए है (और इस कारण मैं इस पोस्ट पर समाप्त हुआ)।

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

ध्यान दें कि इनकोड संख्या एक ही फाइल के सभी हार्ड लिंक के लिए समान है।

% 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

(नवीनतम केवल अंतिम दिनांकित निर्देशिका के लिए एक सहानुभूति है)

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

फ़ाइल को सभी बैकअप से निकाल दिया जाता है, और स्थान वापस कर दिया जाता है। यदि फ़ाइल समय के साथ बदल रही है, तो प्रत्येक बैकअप की पूरी प्रतिलिपि होगी और लौटा हुआ स्थान बहुत बड़ा होगा।


के रूप में "एक पूरे व्यक्तिगत बैकअप को हटाने से चोट नहीं लगेगी। आप सिर्फ हार्ड लिंक को हटा रहे हैं। कोई अन्य बैकअप प्रभावित नहीं होगा।" : अगर यह के लिए संदर्भित करता स्नैपशॉट एक मशीन के लिए बैकअप के भीतर है, तो दी केंट के (पुराने) जवाब का उपयोग कर rm -rहो सकता है (या: किया गया है) खतरनाक। सॉरी से बेहतर हो और उसके tmutilलिए उपयोग करें ।
अर्जन

0

यदि आप कमांड को उस उपयोगकर्ता के रूप में निष्पादित नहीं कर रहे हैं जो बैकअप का मालिक है, तो आपको कमांड लाइन से हटाने में कठिन समय लगने वाला है। मेरे पास बस एक माइग्रेशन के साथ यह समस्या थी, और हमें पूरे टाइम मशीन बैकअप (1tb +) को डिट्टो करना था और ड्राइव को फॉर्मेट करने से पहले हमें इसमें किसी भी तरह की एक्सेस मिल सकती थी - और मुझ पर भरोसा करते हुए, मैंने परमिशन को ओवरराइड करने के लिए हरसंभव कोशिश की।


2
मुझे प्रशासक के रूप में चलाने के लिए sudo को मुझे सभी फ़ाइलों तक पहुँच देनी चाहिए। मुझे पूरा यकीन है कि यह एक एसीएल मुद्दा है और मैं उस पर काम कर रहा हूं।
टिम

1
निक, कुछ साल देर से, लेकिन मामले में आप इसे याद किया: एरिक का जवाब देखें
अर्जन

@ समय: अपरिवर्तनीय विशेषता ( chattr) को देखते हुए यह दावा अन्य यूनिक्सॉइड सिस्टम पर भी असत्य होगा । क्या जड़ आपको सैद्धांतिक रूप से किसी भी सुरक्षा जाल को दरकिनार करना है।
0xC0000022L

0

यदि आप किसी फ़ोल्डर में सभी फाइलों को हटाना चाहते हैं, न कि केवल विशिष्ट फाइलों को, तो आप इसे टाइम मशीन की बहिष्करण सूची में फ़ोल्डर जोड़कर पूरा कर सकते हैं। (सिस्टम प्राथमिकताएँ -> टाइम मशीन -> विकल्प। फोल्डर को यहाँ खींचें।)

अगली बार जब आप बैकअप करते हैं, तो उस फ़ोल्डर की प्रतियां पिछले बैकअप से हटा दी जाएंगी।

अब, यदि आप वास्तव में एक सीएलआई से ऐसा करना चाहते हैं , तो एक तरीका है, भले ही थोड़ा बोझिल हो।

  1. /Library/Preferences/com.apple.TimeMachine.plist का बैकअप बनाएं
  2. कहीं / जहाँ आप इसके साथ खिलौना कर सकते हैं / कॉपी करें / जमा //app.apple.TimeMachine.plist।
  3. जहाँ भी आप इसे डालते हैं।

  4. plutil -convert xml1 com.apple.TimeMachine.plist
    इसे बाइनरी फॉर्म से बदलने के लिए निष्पादित करें।
  5. बेहतर पाठ संपादक में परिवर्तित प्लिस्ट खोलें, "स्किथथ्स" की खोज करें
  6. उस अनुभाग में एक नई पंक्ति सम्मिलित करें, जैसा कि स्वरूपित है <string>/Path/To/Exclude</string>
  7. सहेजें और बाहर निकलें, निष्पादित करके वापस बदलें
    plutil -convert binary1 com.apple.TimeMachine.plist
  8. अपने संपादित plist को वापस / लाइब्रेरी / वरीयता / में कॉपी करें
  9. निष्पादित करके बैकअप शुरू करें
    /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -auto

संपादित करें: जब आप चरण 9 का प्रदर्शन करते हैं, तो नए बहिष्कृत फ़ोल्डर की सभी प्रतियां पिछले बैकअप से मिटा दी जाएंगी।

अपवाद को हटाने के लिए, अपने बैकअप को वापस / लाइब्रेरी / प्राथमिकता में कॉपी करें।


मैं एक निर्देशिका को बाहर करने की कोशिश नहीं कर रहा हूँ। मैं एक निर्देशिका को मौजूदा बैकअप से हटाने और कमांडलाइन से कुछ करने की कोशिश कर रहा हूं। वास्तव में, मैं सिर्फ यह जानना चाहूंगा कि rm को एक Backups.backupdb निर्देशिका में कैसे काम करने दिया जाए।
टिम

ठीक है, शायद यह मेरे निर्देशों से स्पष्ट नहीं था कि उपरोक्त चरणों का प्रदर्शन करते समय फ़ोल्डर को बैकअप से हटा दिया जाता है। मेरा संपादन देखें। लेकिन अगर यह वह समाधान नहीं है जिसकी आप तलाश कर रहे हैं, तो मुझे लगता है कि आप हमेशा su - rootऔर फिर rm -rfफ़ोल्डर्स ले सकते हैं, लेकिन मुझे लगता है कि किसी चीज़ के साथ अनमोल रूप में बैकअप लेना उतना ही कीमती है जितना कि आम तौर पर बचने का प्रयास करना चाहिए।
फ्रॉस्ट

लेकिन इसे एक बहिष्करण के रूप में जोड़ने से सभी बैकअप से इसकी सभी प्रतियां हट जाएंगी। हालाँकि, यह एक TimeMachine बैकअप है, लेकिन यह उस मशीन से नहीं है जिस पर मैं यह काम कर रहा हूँ, इसलिए यह अब सक्रिय TimeMachine नहीं है। सुडो का "सु-रूट" और फिर "आरएम-आरएएफ" जैसा ही प्रभाव है। मुझे पूरा यकीन है कि यह विफल हो रहा है क्योंकि Apple ने सरल * nix अनुमतियों से परे फाइलसिस्टम में सुरक्षा का एक स्तर जोड़ा है।
टिम

यह बेवकूफ लग सकता है, लेकिन मुझे पूरी तरह से यकीन नहीं है कि sudoइसका प्रभाव su - rootमैक पर है। मुझे ऐसा अवसर याद आ रहा है जब मैं कुछ ऐसा करने की कोशिश नहीं कर रहा था sudo, जिसमें कोई दम न हो, लेकिन sudo - rootचाल चली।
फ्रॉस्ट

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

0

आप ध्वज lsका उपयोग करके लंबी अवधि में सूची विस्तारित विशेषताएँ बना सकते हैं -@। जब आप -eध्वज की आपूर्ति करेंगे तो यह एसीएल को सूचीबद्ध करेगा । इसलिए, आप यह पता लगा सकते हैं कि आप किसके साथ काम कर रहे हैं ls -lea@ DIR

मेरे स्थानीय टाइम मशीन बैकअप को देखते हुए, ऐसा लगता है कि टाइम मशीन नवीनतम और सबसे पुराने स्नैपशॉट के बारे में मेटाडेटा के साथ विस्तारित विशेषताओं को लागू करती है। Xattrs द्वारा संग्रहीत डेटा एक बाइनरी प्लिस्ट लगता है। ये सहज लगते हैं।

टाइम मशीन एसीएल को उन कुछ निर्देशिकाओं पर लागू करना चाहती है, जिनके बारे में वह जानता है, जैसे कि मानक उपयोगकर्ता निर्देशिका में रखे गए। आपके रास्ते में संभावित रूप से दो प्रकार के एसीएल खड़े होते हैं: जो सीधे फाइल या डायरेक्ट्री पर लागू होते हैं जो डिलीट से इनकार करते हैं, और उन फाइल के माता-पिता पर लागू होते हैं जो डिलीट_चिल्ड से इनकार करते हैं।

दुर्भाग्य से, मैक ओएस एक्स उपयोगकर्ता उपयोगिताओं की आपूर्ति नहीं करता है getfaclऔर setfaclदेखने के लिए और एसीएल में हेरफेर करने के POSIX.2c द्वारा निर्दिष्ट। एसीएल के साथ गड़बड़ करने के लिए, आपको कुछ प्रोग्रामिंग करनी होगी; acl(3)मैनपेज देखें ।

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