"এলএস-এলএইচ" পৃথক আকারের সমষ্টি থেকে মোট আকার কম রিপোর্ট করে


14

কোন পরিস্থিতিতে ls -lhমোট ফাইলগুলি পৃথক ফাইলের যোগফলের চেয়ে কম দেখায়? উদাহরণ স্বরূপ:

$ ls -lh /var/lib/nova/instances/_base
total 100G
-rw-rw-r-- 1 nova         nova 4.3M 2012-02-14 14:07 00000001
-rw-rw-r-- 1 nova         nova 5.7M 2012-02-14 14:07 00000002
-rw-rw-r-- 1 nova         nova  42G 2012-03-08 15:24 1574bddb75c78a6fd2251d61e2993b5146201319.part
-rw-rw-r-- 1 libvirt-qemu kvm   24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
-rw-r--r-- 1 libvirt-qemu kvm   65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
-rw-rw-r-- 1 libvirt-qemu kvm  160G 2012-02-24 16:06 ephemeral_0_160_None
-rw-rw-r-- 1 libvirt-qemu kvm   80G 2012-02-24 22:38 ephemeral_0_80_None
-rw-r--r-- 1 libvirt-qemu kvm   10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
-rw-r--r-- 1 libvirt-qemu kvm   10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm

সম্পাদনা করুন: এখন মন্তব্যে অনুরোধ অনুযায়ী কিছু অতিরিক্ত পতাকা দেখানো হচ্ছে:

$ ls -aiFlh  /var/lib/nova/instances/_base/
total 143G
29884440 drwxrwxr-x 2 nova         nova 4.0K 2012-03-08 15:45 ./
29884427 drwxr-xr-x 6 nova         nova 4.0K 2012-03-08 15:05 ../
29884444 -rw-rw-r-- 1 nova         nova 4.3M 2012-02-14 14:07 00000001
29884445 -rw-rw-r-- 1 nova         nova 5.7M 2012-02-14 14:07 00000002
29884468 -rw-r--r-- 1 nova         nova  65G 2012-03-08 15:59 1574bddb75c78a6fd2251d61e2993b5146201319.converted
29884466 -rw-rw-r-- 1 nova         nova  58G 2012-03-08 15:35 1574bddb75c78a6fd2251d61e2993b5146201319.part
29884446 -rw-rw-r-- 1 libvirt-qemu kvm   24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
29884467 -rw-r--r-- 1 libvirt-qemu kvm   65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
29884443 -rw-rw-r-- 1 libvirt-qemu kvm  160G 2012-02-24 16:06 ephemeral_0_160_None
29884442 -rw-rw-r-- 1 libvirt-qemu kvm   80G 2012-02-24 22:38 ephemeral_0_80_None
29884447 -rw-r--r-- 1 libvirt-qemu kvm   10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
29884441 -rw-r--r-- 1 libvirt-qemu kvm   10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm


@ ডাউনিং অতিরিক্ত পতাকা যুক্ত করেছে। নোট করুন ডিরেক্টরিতে কিছু পরিবর্তন হয়েছে, তবে সমস্যাগুলি এখনও রয়েছে
লোরিন হচস্টিন

কেমন হয় du -h --totalএকই Dir জন্য?
বিএসডি

উত্তর:


20

আপনার কাছে বিরল ফাইল থাকলে এটি ঘটবে:

$ mkdir test; cd test
$ truncate -s 1000000000 file-with-zeroes
$ ls -l
total 0
-rw-r--r-- 1 gim gim 1000000000 03-08 22:18 file-with-zeroes

একটি স্পার্স ফাইল এমন একটি ফাইল যা ফাইল সিস্টেম ব্লকগুলি (বা কেবল আংশিকভাবে) দ্বারা জনবহুল হয়নি। আপনি যখন একটি স্পার্স ফাইলের একটি জন-জনবহুল অঞ্চল পড়বেন তখন আপনি শূন্য পাবেন। এই জাতীয় ফাঁকা অঞ্চলগুলিকে প্রকৃত ডিস্কের জায়গার প্রয়োজন হয় না, এবং উল্লিখিত 'টোটাল' lsফাইল দ্বারা দখল করা ডিস্কের জায়গার সাথে মিলে যায় (ঠিক যেমন du)।


3
আপনার কেভিএম ডিস্ক চিত্রগুলি সম্ভবত গর্তে পূর্ণ :-)
স্টাফেনি গিমেনেজ

Coreutils ডকুমেন্টেশন বলে -s/ --sizeবিকল্প "মুদ্রণ ফাইলের নাম বাম প্রতিটি ফাইলের ডিস্ক বরাদ্দ। এই ফাইলটি ব্যবহার করে ডিস্কের স্থান পরিমাণ, যা সাধারণত ফাইলের আকারের তুলনায় একটু বেশি হয়, কিন্তু এটা করতে পারেন যদি ফাইলটিতে গর্ত থাকে তবে কম থাকুন-lঅবশ্যই বিকল্প আকার খুব ছাপে।
ফ্রান্সেস্কো টার্কো

2

অনুগ্রহ করে নোট করুন ls -lএবং প্রদত্ত আউটপুটটির duএকটি সূক্ষ্ম তবে খুব গুরুত্বপূর্ণ পার্থক্য রয়েছে। এটা চেষ্টা কর:

dd if=/dev/urandom of=aaa bs=1024 count=1

এখন

ls -l aaa
-rw-r--r-- 1 abc abc 1024 2012-03-08 15:45 aaa

যেহেতু

du -h aaa
4.0K    aaa

এটি কারণ ফাইল সিস্টেমটি 4096 (আমার লিনাক্স বাক্সে) এর অংশগুলিতে আকার বরাদ্দ করে। একে আইও ব্লক বলা হয়। আপনি এটি দ্বারা দেখতে পারেন:

    stat aaa
  File: `aaa'
  Size: 1024        Blocks: 8          IO Block: 4096   regular file

এছাড়াও, আপনি statআমার প্রস্তাবিত চেষ্টা করতে পারেন empty-file, এবং আপনি দেখতে পাবেন যে ব্লকের সংখ্যা 0, এমনকি ফাইলটি 1 জি আকারের বলে জানা গেছে।
স্টাফেন গিমেনেজ

@ স্টাফেনি গিমেনেজ কেন এটি ব্লকগুলিকে 8 হিসাবে রিপোর্ট করেছে? আকার 512 বাইট সহ এটি কোন ব্লক?
অঙ্কুর আগরওয়াল

1
এটি কিছুটা আশ্চর্যজনক, পুরানো কালে আইও ব্লকের আকার ছিল 512, তবে এখন তারা সাধারণত 4K হয়। statসমস্ত 4K ব্লক সংরক্ষণের জন্য প্রয়োজনীয় পুরানো আকারের ব্লকের সমপরিমাণ সংখ্যার রিপোর্ট করে (এটি 4K ব্লকের আসল সংখ্যার 8 গুণ বেশি)।
স্টাফেন গিমেনেজ

1

গৃহীত উত্তর একেবারে সঠিক, আপনি যদি আপাত আকার দেখতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

du --apparent-size

ডিস্ক ব্যবহারের পরিবর্তে আপাত আকারগুলি মুদ্রণ করুন; যদিও আপাত আকারটি সাধারণত ছোট থাকে তবে ('স্পার্স') ফাইলের অভ্যন্তরীণ খণ্ডন, পরোক্ষ ব্লক এবং এর মতো কারণে এটি বড় হতে পারে

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