मैं कई हार्डलिंक के साथ NTFS निर्देशिका में उपयोग किए गए वास्तविक आकार की जांच कैसे कर सकता हूं?


14

Win7 NTFS वॉल्यूम पर, मैं cwrsync का उपयोग कर रहा हूं, जो "स्नैपशॉट" प्रकार बैकअप बनाने के लिए सही ढंग से समर्थन करता है। तो मेरे पास है:

z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...

2010-12-02 की सामग्री ज्यादातर 2010-11-28 निर्देशिका में फ़ाइलों में वापस हार्डलिंक है, लेकिन केवल 2010-12-02 में कुछ नई या परिवर्तित फाइलें हैं। लिनक्स पर, 'डु' उपयोगिता मुझे प्रत्येक वृद्धिशील स्नैपशॉट द्वारा लिया गया वास्तविक आकार बताएगा। विंडोज़ पर, साइबरविन के तहत एक्सप्लोरर और डु दोनों को हार्डलिंक द्वारा मूर्ख बनाया गया है और 2010-12-02 के शो 2010-11-28 से थोड़ा अधिक स्थान ले रहे हैं।

क्या एक विंडोज़ उपयोगिता है जो सही जगह को तीव्रता से उपयोग में दिखाएगी?


इसे संबोधित करने वाले उपकरण एक सटीक चित्र प्राप्त करने में बहुत सहायक होंगे क्यों / winxs फ़ोल्डर इतना बड़ा हो जाता है, और क्या इसे छोटा किया जा सकता है? और
मैट विल्की

यह सामान्य डिस्क उपयोग के लिए डी-फैक्टर प्रश्न और उत्तर लगता है: मैं विंडोज पर फ़ाइल सिस्टम के उपयोग की कल्पना कैसे कर सकता हूं?
मैट विल्की

जवाबों:


11

Sysinternals डिस्क उपयोग (अन्यथा के रूप में जानते हैं du) का उपयोग करने का प्रयास करें , विशेष रूप से -uऔर -vझंडे का उपयोग केवल अद्वितीय घटनाओं की गणना करेगा, और प्रत्येक फ़ोल्डर के उपयोग को दिखाएगा जैसा कि यह साथ जाता है।

जहाँ तक मुझे पता है फ़ाइल सिस्टम मूल फ़ाइल और हार्ड लिंक के बीच का अंतर नहीं दिखाता है (जो वास्तव में एक हार्ड लिंक का बिंदु है) तो आप उन्हें फ़ोल्डर-बाय-फोल्डर आधार पर छूट नहीं दे सकते, लेकिन तुलनात्मक रूप से ऐसा करने की जरूरत है।

परीक्षण करने के लिए मैंने 6 फ़ाइलों के साथ एक यादृच्छिक फ़ोल्डर बनाया। पूरी बात बताई। फिर पहले फ़ोल्डर में अन्य फ़ाइलों को संदर्भित करने के लिए पहले फ़ोल्डर के अंदर कई हार्ड और सॉफ्ट लिंक बनाए, और दूसरे में भी कुछ।

में du -u -v testFldपरिणाम चल रहे हैं (फ़ोल्डरों के आगे मानों को ध्यान में रखें)

       104  <path>\testFld\A
        54  <path>\testFld\B
       149  <path>\testFld

Totals:
Files:        12
Directories:  2
Size:         162,794 bytes
Size on disk: 162,794 bytes

चल रहे du -u -v testFld\aपरिणाम:

104  <path>\testFld\a
...

चल रहे du -u -v testFld\bपरिणाम:

74   <path>\testFld\b
...

बेमेल नोटिस?
A में सह-सम्‍मिलन जो B में फ़ाइलों को संदर्भित करता है, केवल "पूर्ण" रन के दौरान A के विरुद्ध गिना जाता है, और B केवल 54 रिटर्न करता है (भले ही फाइलें मूल रूप से B में थीं और A से हार्ड-लिंक की गई थीं)। जब आप बी को अलग से मापते हैं (या, यदि आप -uअद्वितीय ध्वज का उपयोग नहीं करते हैं ) तो यह 74 के अपने "पूर्ण" माप को गिना जाएगा।


1
धन्यवाद, मैं sysinternals du के बारे में पता नहीं था, सिर्फ एक cygwin। जाहिरा तौर पर साइबरविन डू मुझे भी वही चाहिए, जो मैंने बाउंटी शुरू करने से पहले करने की कोशिश नहीं की।
kbyrd

यह उत्तर -uध्वज के कार्य को भ्रमित करता है । यदि आप ध्वज का उपयोग करते हैं तो आपको "पूर्ण" उपाय मिलता है । इसके बिना, यह किसी भी हार्ड-लिंक्ड फ़ाइल के केवल 1 उदाहरण को गिनता है। डॉक्स में कहते हैं: docs.microsoft.com/en-gb/sysinternals/downloads/du और परीक्षण इसे सत्यापित करता है। -u
19ix में 19

2

PowerShell 5 एक विकल्प हो सकता है। यह विंडोज 7 के लिए उपलब्ध है, लेकिन मैंने केवल अप्रैल 2015 पूर्वावलोकन के साथ सर्वर 2012 R2 पर इसका परीक्षण किया

PowerShell 5 में फ़ाइल सिस्टम प्रदाता के पास दो नए गुण हैं LinkTypeऔर Target:

ls taskmgr.exe | fl LinkType,Target

यह रिटर्न:

LinkType : HardLink
Target   : C:\Windows\WinSxS\amd64_microsoft-windows-advancedtaskmanager_..._6.3.9600.17..2\Taskmgr.exe

तो अब मैं केवल system32 की सभी फाइलें दिखा सकता हूं जो हार्डलिंक नहीं हैं:

cd $env:SystemRoot\System32
ls -Recurse -File -force -ErrorAction SilentlyContinue | ? LinkType -ne HardLink | Measure-Object -Property Length -Sum

यह रिटर्न:

Count    : 844
Sum      : 502,486,831

आप सभी फ़ाइलों के साथ तुलना कर सकते हैं:

ls -Recurse -File -force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum

Count    : 14092
Sum      : 2,538,256,262

तो 2GB + वाली 13,000 से अधिक फाइलें हार्डलिंक हैं


1

ट्रीसाइज़ प्रोफेशनल (~ $ 55, 30 दिन परीक्षण) NTFS हार्डलिंक डिस्क स्थान को भेदने का दावा करता है। एक त्वरित परीक्षण इसे सहन करने के लिए लगता है।

हार्डलिंक समर्थन को बॉक्स से बाहर चालू नहीं किया जाता है: उपकरण> विकल्प> स्कैन , पुन: स्कैन पर जाएं, फिर आकार और आवंटित स्थान के बीच उपयोग करें Ctrl-1और Ctrl-2स्विच करें । आबंटित वास्तविक स्थान का उपयोग किया जाता है, जबकि आकार अन्य कार्यक्रमों द्वारा सामान्य रूप से रिपोर्ट किया जाने वाला आंकड़ा है।

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


1

मुझे लगता है कि कुछ तथ्यों को यहीं सेट करने की आवश्यकता है।

विंडोज़ हार्डलिंक का "पता लगा" नहीं सकता, क्योंकि हर फाइल वास्तव में हार्ड डिस्क पर बाइट्स के एक गुच्छा के लिए है।

डु उपकरण डुप्लिकेट का पता लगाता है, लेकिन वह भी गलत है, के बाद से यदि फ़ोल्डर एक फ़ाइलें हैं और बी केवल एक में फ़ाइलों को hardlinks होता है, तो एक के du और बी के du एक ही जवाब वापस आ जाएगी - मूल रूप से आने वाले फ़ाइलों का आकार ए से, लेकिन ये फाइलें अब बी में भी हैं।

यह वास्तव में सही है, क्योंकि उदाहरण के लिए यदि आपने ए को हटा दिया है, तो डिस्क पर इसकी फाइलें नहीं हटाई जाएंगी, क्योंकि वे अभी भी बी द्वारा संदर्भित हैं हार्ड-लिंक के साथ, कौन सी फाइल स्रोत है और कौन सी हार्ड-लिंक है काफी मनमाना और अर्थहीन।

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

निष्कर्ष: हार्ड-लिंक के साथ, "एनटीएफएस निर्देशिका में उपयोग किए जाने वाले वास्तविक आकार" का प्रश्न अर्थहीन है।


1

मैं इस प्रश्न के बारे में कुछ शोध भी करता हूं। यहां मेरे द्वारा खोजे गए परिणाम हैं।

NTFS में हार्डलिंक वाली फ़ाइलों का फ़ोल्डर आकार तीन अलग-अलग अर्थों में माना जा सकता है:

  1. सभी हार्डलिंक फ़ाइलों के आकार सहित आकार (जो WE द्वारा दिखाया गया है)।
  2. केवल वर्तमान फ़ोल्डर के संदर्भ में अद्वितीय फ़ाइलों का आकार।
  3. केवल संपूर्ण डिस्क के संदर्भ में अद्वितीय फ़ाइलों का आकार।

नंबर 2 वह है जो ट्रीसाइज प्रोफेशनल द्वारा दिखाया गया है, विवरण टैब में, आवंटित कॉलम, यदि विकल्प "ट्रैक एनटीएफएस हार्डलिंक" सक्षम है।

यहाँ winxs फ़ोल्डर के लिए निर्वासन है (10 के विरोध में 7.5 जीबी):

छवि

संख्या 3 मान प्राप्त करना अभी भी मेरे लिए एक सवाल है। हालांकि मैं NL_Info प्लगइन के साथ कुल कमांडर का उपयोग करके एक कम बाउंड प्राप्त करने में सक्षम था। मुझे जो मिला है, वह उन फ़ाइलों द्वारा कब्जा कर लिया गया आकार है जिसमें एक हार्डलिंक (अद्वितीय फाइलें) हैं। यह दिए गए उदाहरण के लिए लगभग 5Gb था।

तो दूसरे शब्दों में harrymc उत्तर का विस्तार करने या कहने की कोशिश कर रहा है।


0

आप निर्देशिका ट्री का "सही आकार" दिखाने के लिए ln.exe का उपयोग कर सकते हैं :

ln.exe --truesize z:\backups\.

यह केवल उस शुरुआती फ़ोल्डर के नीचे हार्डलिंक का पता लगाएगा।

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