du ভুলভাবে খালি ডিরেক্টরি রিপোর্ট করে


13

আমি এই আদেশগুলি ব্যবহার করছি:

du -sh --apparent-size ./*
du -sh ./*

উভয় রিপোর্টিং:

4.0K    ./Lightroom_catalog_from_win_backup
432M    ./Lightroom catalog - wine_backup

এই ডিরেক্টরিগুলিতে থাকে:

$ll ./"Lightroom catalog - wine_backup"
total 432M
-rwxrwx--- 1 gigi gigi 432M Mar 18  2018 Lightroom 5 Catalog Linux.lrcat
-rwxrwx--- 1 gigi gigi  227 Nov 21  2015 zbackup.bat
$ll ./Lightroom_catalog_from_win_backup
total 396M
-rwxrwx--- 3 gigi gigi 396M Dec 17 09:35 Lightroom 5 Catalog Linux.lrcat
-rwxrwx--- 3 gigi gigi  227 Dec 17 09:35 zbackup.bat

। / লাইটরুম_ক্যাটালগ_ফর্ম_উইন_ব্যাকআপের জন্য কেন duপ্রতিবেদন 4.0Kকরা হচ্ছে এবং কীভাবে আমি এটি সঠিকভাবে প্রতিবেদন করতে পারি?

PS: অন্যান্য সিস্টেম তথ্য:

$stat --file-system $HOME
  File: "/home/gigi"
    ID: 5b052c62a5a527bb Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 720651086  Free: 155672577  Available: 119098665
Inodes: Total: 183050240  Free: 178896289

$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:        16.04
Codename:       xenial

ইতিমধ্যে এখনও পর্যন্ত দেওয়া উত্তরগুলি তৈরি করতে, কী /bin/ls -li './*/Lightroom 5 Catalog Linux.lrcat'ফিরে আসে?
didal24

ls -li ./*/"Lightroom 5 Catalog Linux.lrcat" 36831321 -rwxrwx--- 1 gigi gigi 432M Mar 18 2018 ./Lightroom catalog - wine_backup/Lightroom 5 Catalog Linux.lrcat 36833201 -rwxrwx--- 3 gigi gigi 396M Dec 17 09:35 ./Lightroom_catalog_from_win_backup/Lightroom 5 Catalog Linux.lrcat
adrhc

1
তিনটি লিঙ্ক গণনা সহ ফাইলটি duকমান্ডের অন্য কোথাও গণনা করা হচ্ছে না বলে এটি উত্তরগুলির সাথে একটি সমস্যা উপস্থাপন করে । সুতরাং আপনার কাজ ডিরেক্টরিতে কেবল দুটি উপ ডিরেক্টরি আছে?
didal24

না, আমার আনুমানিক 15 জন রয়েছে
18

উত্তর:


23

ফাইলগুলি হার্ড লিঙ্কগুলি থাকলে আমি পুনরুত্পাদন করতে পারি:

~ mkdir foo bar
~ dd if=/dev/urandom of=bar/file1 count=1k bs=1k
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00985276 s, 106 MB/s
~ ln bar/file1 foo/file1
~ du -sh --apparent-size foo bar
1.1M    foo
4.0K    bar

এটি প্রত্যাশিত আচরণ। থেকে গনুহ duডক্স :

যদি দুটি বা ততোধিক হার্ড লিঙ্কগুলি একই ফাইলের দিকে নির্দেশ করে তবে কেবলমাত্র একটি হার্ড লিঙ্কই গণনা করা হয়। ফাইল আর্গুমেন্ট অর্ডারটি কোন লিঙ্কগুলি গণনা করা হয়েছে তা প্রভাবিত করে এবং যুক্তির ক্রমটি পরিবর্তন করলে ডু আউটপুটগুলির সংখ্যা এবং এন্ট্রি পরিবর্তন হতে পারে।

আপনার যদি সত্যিই বারবার আকারের হার্ড লিঙ্কগুলির প্রয়োজন হয় তবে -lবিকল্পটি ব্যবহার করে দেখুন:

' -l'
' --count-links'
সমস্ত ফাইলের আকার গণনা করুন, যদিও সেগুলি ইতিমধ্যে উপস্থিত হয়েছে (হার্ড লিঙ্ক হিসাবে)।

~ du -sh --apparent-size foo bar -l
1.1M    foo
1.1M    bar

15

লক্ষ্য করুন কিভাবে লিংক গণনা হয় 3দুই ফাইলের জন্য Lightroom 5 Catalog Linux.lrcatএবং zbackup.batমধ্যে Lightroom_catalog_from_win_backup

এর অর্থ হ'ল এই দুটি ফাইল অন্য কোথাও অন্য ফাইলগুলির সাথে (অতিরিক্ত নামের) সাথে যুক্ত রয়েছে। আপনি যখন duকোনও ডিরেক্টরি বা ফাইলের সেটে চালনা করেন, তখন প্রতিটি হার্ড লিঙ্কটি একবারে গণনা করা হয়।

উদাহরণ:

$ ls -l
total 41024
-rw-r--r--  2 kk  wheel  10485760 Dec 17 09:07 file1
-rw-r--r--  2 kk  wheel  10485760 Dec 17 09:07 file2

$ du -h file1
10.0M   file1

$ du -h file2
10.0M   file2

$ du -h .
10.0M   .

এই আচরণটি ইউটিলিটির জন্য POSIX স্ট্যান্ডার্ডdu দ্বারা স্পষ্টভাবে আদেশিত :

একটি ফাইল যা একাধিক বার এক ফাইল অপেনডের অধীনে ঘটে এবং এর লিঙ্কের গণনা 1 এর চেয়ে বেশি হয় কেবল একটি প্রবেশের জন্য গণনা করা এবং লিখিত হবে।

কিছু duবাস্তবায়নের ক্ষেত্রে এই আচরণটি অক্ষম করার মানহীন বিকল্প রয়েছে। জিএনইউ-র জন্য duএটি -lবিকল্পের সাহায্যে সম্পন্ন হয়েছে ।


3

এটি প্রায় অবশ্যই সঠিকভাবে কাজ করছে। duপ্রতিটি ফাইল যতবার উল্লেখ করা হয়েছে কেবল তা একবারই গণনা করে। এটি সম্ভবত আপনার দুটি ডিরেক্টরিতে হার্ড-লিঙ্কযুক্ত ফাইলগুলির একই সেট রয়েছে।

গনুহ জন্য man পৃষ্ঠা duঅফার -l, --count-linksএই মান অপ্টিমাইজেশান (দেখুন বন্ধ স্যুইচ করতে man duআপনার বাস্তবায়ন এই অন্তর্ভুক্ত যদি চেক করতে)। অথবা আপনি duপ্রতিটি ডিরেক্টরি জন্য একবার, একবার চালানো ।

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