প্রতীকী লিঙ্কগুলি কি ডিস্কের ব্যবহারের ক্ষেত্রে কোনও পার্থক্য করে?


21

আমি অনেকগুলি ওয়েবসাইটে পড়েছি যে লিনাক্সে প্রতীকী লিঙ্কগুলি (সফট লিঙ্কগুলি, সিমলিংকগুলি) ঠিক এমন পয়েন্টারগুলির মতো যা অন্য কোনও ফাইলকে রেফার করে, যা কোথাও অবস্থিত হতে পারে (উইন্ডোজ শর্টকাটগুলির মতো)। যাইহোক, আমি যখন একটি ফোল্ডারে যেখানে প্রতীকী লিঙ্কগুলি রয়েছে তার ডিস্কের ব্যবহার পরীক্ষা করি, তখন আমার ফাইল ম্যানেজার কী বলে এবং কি duরিপোর্ট করে তার মধ্যে একটি মিল নেই । তবে, যদি আমি টাইপ করি du -L( -L, --dereference; dereference all symbolic linksম্যান পৃষ্ঠা থেকে), আউটপুট du -Lএবং আমার ফাইল ম্যানেজারের রিপোর্টের আকারটি একই

আমার প্রশ্ন হ'ল : যদি আমার একটি বড় ফাইলের একটি সফ্টলিঙ্ক থাকে, উদাহরণস্বরূপ, আমার পৃথকhomeবিভাজন, আমার কি কোনও সমস্যা হবে?

উদাহরণ :

আমার /var/tmpফোল্ডারটি এখন খালি খালি। আসুন একটি ফাইল তৈরি করুন:

$ cat /some/file.txt > file.txt
$ du -ac
164 ./file.txt
168 .
168 total

এবং আমার ফাইল পরিচালক (থুনার, এক্ষেত্রে) রিপোর্ট করেছেন reports

আকার: 1 টি আইটেম, মোট 163.0 কেবি

ঠিক আছে. এখন, আসুন একটি সত্যই বড় ফাইল তৈরি করতে /tmpএবং এতে একটি সিমিলিং:

$ cat /dir/really_big.txt > /tmp/heavy.txt
$ du -a | grep heavy.txt
408 ./heavy.txt
$ ln -s /tmp/heavy.txt heavy.txt
$ du -ac
164 ./file.txt
0   ./heavy.txt
168 .
168 total

আপাতত সবকিছু ঠিক আছে। তবে আমি যদি আমার ফাইল ম্যানেজারটি খুলি:

আকার: 2 টি আইটেম, মোট 570.3 কেবি

এবং পরিশেষে:

$ du -acL
164 ./file.txt
408 ./heavy.txt
576 .
576 total

যে পার্টিশনে /var/tmpঅবস্থিত এটি যদি 1 জিআইবি বড় হয় এবং আমি এটিতে 1 জিআইবি ফাইলের সাথে একটি লিঙ্ক তৈরি করি, তবে আমার হার্ড ডিস্কটি মারা যাবে? আমি জানি যে du168 এবং থুনার 1 জিবি আউটপুট আসবে, তবে কোনটি সঠিক তা আমি জানি না।


আপনি কি নিশ্চিত যে একটি প্রোগ্রাম মিবের জন্য উদাহরণস্বরূপ, এবং অন্যটি এমবিতে রিপোর্ট করছে না?
হ্যান্ডিগ্যান্ডি

না, এটি কোনও ইউনিটের সমস্যা নয়।
অ্যাস্ট্রজুয়ানলু

উত্তর:


34

প্রতীকী লিঙ্কগুলি অবশ্যই জায়গা করে নেয়, তবে নাম এবং লক্ষ্য সঞ্চয় করতে অন্য মেটাডেটার জন্য কয়েকটি বাইট সংরক্ষণ করার জন্য এটি কেবলমাত্র কক্ষ লাগে। প্রতীকী লিঙ্কের দ্বারা নেওয়া স্থান লক্ষ্য দ্বারা গৃহীত স্থানের উপর নির্ভর করে না (সর্বোপরি, লক্ষ্যটির অস্তিত্বের প্রয়োজনও নেই)।

সমতল duডিস্কে ডিরেক্টরি গাছের দ্বারা নেওয়া স্থানের প্রতিবেদন করে। du -Lস্থান যে রিপোর্ট করা হবে একটি ডিরেক্টরি ট্রি কর্তৃক গৃহীত যদি সব সিম্বলিক লিংক লক্ষ্যে দ্বারা প্রতিস্থাপিত হয়েছে। পূর্ববর্তীটি সাধারণত দরকারী তথ্য; উদাহরণস্বরূপ, আপনি যদি গাছটি মুছে ফেলেন তবে আপনি যে জায়গাটি পুনরুদ্ধার করতে পারবেন এটি সেই জায়গা এবং গাছটিকে ব্যাক আপ করার জন্য আপনার (স্থানটি) প্রায় স্থান প্রয়োজন।

duডিরেক্টরিতে গাছের আকার দেখায় (সাধারণত) ফাইলের আকারের মোটের চেয়ে খানিক বেশি। এটি দুটি জিনিসের কারণে। প্রথমে duডিরেক্টরিগুলিও গণনা করা হয় যা ফাইলের নাম এবং মেটাডেটা সঞ্চয় করতে একটু ঘর নেয়। দ্বিতীয়ত, duকোনও ফাইল দ্বারা নেওয়া ডিস্কের স্থান গণনা করা হয় যা ফাইলের আকার থেকে পৃথক হতে পারে: সর্বাধিক সাধারণ প্রভাবটি হ'ল ফাইলগুলি একটি পূর্ণসংখ্যক ব্লক (একটি সাধারণ লিনাক্স ইনস্টলেশনতে 4kB) গ্রহণ করে, তাই 1-বাইট ফাইলটি ডু আউটপুট 4kB হিসাবে প্রদর্শন; তবে সংক্ষেপণ (যেমন প্রতিটি ইউনিক্স ফাইল সিস্টেমে স্পার্স ফাইল সরবরাহ করে এমন আদিম ফর্ম ) ফাইলটির আকারটিকে তার ডিস্ক ব্যবহারের চেয়ে বড় করতে পারে।

সংখ্যার আপনাকে দিতে থেকে, Thunar এ রিপোর্ট করছে যে মনে হচ্ছে, ডিরেক্টরি-ট্রির ফাইল, সিম্বলিক লিঙ্ক অনুসরণ করা আকারের যোগফল । এটি প্রকৃতপক্ষে একটি সূক্ষ্ম উপায়ে বলছে - এটি দাবি করছে যে মোট আকার 570.3 কেবি, এটি নয় যে ডিস্কের ব্যবহার 570.3 কেবি হয়। ব্যবহারকারী ইন্টারফেস বা ডকুমেন্টেশন থেকে যা স্পষ্ট নয় তা হ'ল আকারটি গণনা করার সময় থুনার প্রতীকী লিঙ্কগুলি অনুসরণ করে।

কোনটি "সঠিক" এটি একটি বিষয়গত বিষয়। duডিস্ক ব্যবহারের রিপোর্ট করে। থুনার প্রতীকী লিঙ্কগুলি অনুসরণ করে মোট আকারের রিপোর্ট করে। একটি প্রতীকী লিঙ্ক তৈরি করা ডিস্ক ব্যবহারের উপর নগণ্য প্রভাব ফেলেছে, তবে সংজ্ঞা অনুসারে থুনারের প্রতিবেদন অনুসারে মোট আকারের-নিম্নলিখিত-প্রতীকী-লিঙ্কগুলি পরিবর্তন করে।


আমি আমার প্রশ্নটি সম্পাদনা করেছি যাতে আমার মনে হয় এখন বেশ স্পষ্ট, তবে উত্তরের জন্য আপনাকে ধন্যবাদ।
অ্যাস্ট্রোজুয়ানলু

@ জুয়ানলু 1001: আমি সেই অনুযায়ী আমার উত্তর আপডেট করেছি। সংক্ষেপে, duডিস্কের ব্যবহার দেখায়, যখন থুনার অন্য কিছু দেখায়।
গিলেজ 'SO- স্টপ হচ্ছে মন্দ'

পার্থক্যটি গুরুত্বপূর্ণ যখন আপনি ব্যাকআপ তৈরি করেন যা সিমলিঙ্কগুলি সমাধান করে। আপনি এটি করতে চাইলে আপনার যদি জানা থাকে যে আপনার একটি গাছের নীচে বেশ কয়েকটি সিমলিংক রয়েছে যা গাছের বাইরের অবস্থানগুলিতে সমাধান করে তবে সেই গাছের বাইরের বাকী জিনিসগুলি আপনার পক্ষে গুরুত্বপূর্ণ নয়।
মেল

3

আমি মনে করি ডিফল্টরূপে আপনার ফাইল ম্যানেজার নরম লিঙ্কগুলি নির্দেশ করছে এমন ফাইলগুলির আকার পাওয়ার চেষ্টা করছে, যেখানে duআপনাকে ডিরেক্টরিটির আকার দেয় এবং নরম লিঙ্কগুলি তারা দেয় তবে তারা যে ফাইলগুলি দেখায় সেগুলি নয়।

স্পষ্ট করা,

`du`    -> size of directory + size of all the softlinks  
`du -L` -> size of directory + size of all the files that the softlinks are pointing to.

আমি নিশ্চিত নই যে আপনি এটি যা চেয়েছিলেন তা যদি হয় তবে তা যদি হয় তবে আমি বিশ্বাস করি এটিই আপনার প্রশ্নের উত্তর হতে পারে।


দুঃখিত যে এটি আমার প্রশ্নের উত্তর দেয় নি: আপনি যা বলেছিলেন আমি ইতিমধ্যে বুঝতে পেরেছি। আমি সবেমাত্র এটি সম্পাদনা করেছি।
অ্যাস্ট্রজুয়ানলু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.