একাধিক কমান্ডের সন্ধান করছি যা আমাকে ড্রাইভের বৃহত্তম ফাইলগুলি দেখায়।
একাধিক কমান্ডের সন্ধান করছি যা আমাকে ড্রাইভের বৃহত্তম ফাইলগুলি দেখায়।
উত্তর:
আপনার যদি কেবল বড় ফাইলগুলি সন্ধান করতে find
হয় তবে আপনি -size
বিকল্পটি ব্যবহার করতে পারেন । পরবর্তী কমান্ডটি 10MiB এর চেয়ে বড় সমস্ত ফাইলের তালিকা করবে ( 10MB দিয়ে বিভ্রান্ত হবে না ):
find / -size +10M -ls
আপনি যদি কোনও নির্দিষ্ট আকারের মধ্যে ফাইলগুলি সন্ধান করতে চান তবে আপনি এটি একটি "আকারের চেয়ে কম" অনুসন্ধানের সাথে একত্রিত করতে পারেন। পরবর্তী কমান্ডটি 10MiB এবং 12MiB এর মধ্যে ফাইলগুলি সন্ধান করবে:
find / -size +10M -size -12M -ls
apt-cache search 'disk usage'
ডিস্ক ব্যবহার বিশ্লেষণের জন্য উপলব্ধ কিছু প্রোগ্রামের তালিকাবদ্ধ করে। একটি আবেদন যা খুব আশাব্যঞ্জক দেখাচ্ছে gt5
।
প্যাকেজ বিবরণ থেকে:
বছর পেরিয়ে গেছে এবং ডিস্কগুলি আরও বড় এবং বৃহত্তর হয়ে উঠেছে, তবে এই অবিশ্বাস্যরকম বিশাল হার্ডডিস্ক যুগেও স্থানটি সময়ের সাথে সাথে অদৃশ্য হয়ে গেছে বলে মনে হয়। এই ছোট এবং কার্যকর প্রোগ্রামগুলি ডিফল্ট ডু (1) এর চেয়ে বেশি সুবিধাজনক তালিকা সরবরাহ করে। এটি সর্বশেষ রানের পরে যা ঘটেছিল তা প্রদর্শন করে এবং ডির আকার এবং মোট শতাংশ প্রদর্শন করে। পাঠ্য ভিত্তিক ব্রাউজার (লিংক, এলিংকস, লিঙ্কস ইত্যাদি) দিয়ে কার্সার-কীগুলি ব্যবহার করে ডিরেক্টরিতে নেভিগেট এবং আরোহণ করা সম্ভব is
জিটি 5 এর "সম্পর্কিত প্যাকেজগুলি" বিভাগে , আমি খুঁজে পেয়েছি ncdu
। এর প্যাকেজ বিবরণ থেকে:
এনসিডিডু হ'ল একটি এনক্রাস ভিত্তিক ডু ভিউয়ার। এটি বিখ্যাত ডু ইউটিলিটির মাধ্যমে একটি দ্রুত এবং সহজেই ব্যবহারযোগ্য ইন্টারফেস সরবরাহ করে। এটি ডিরেক্টরিগুলি ব্রাউজ করতে এবং ncurses লাইব্রেরি সহ ডিস্ক ব্যবহারের শতাংশ দেখায়।
আমি কেবল du
এবং এর সংমিশ্রণটি ব্যবহার করি sort
।
sudo du -sx /* 2>/dev/null | sort -n
0 /cdrom
0 /initrd.img
0 /lib64
0 /proc
0 /sys
0 /vmlinuz
4 /lost+found
4 /mnt
4 /nonexistent
4 /selinux
8 /export
36 /media
56 /scratchbox
200 /srv
804 /dev
4884 /root
8052 /bin
8600 /tmp
9136 /sbin
11888 /lib32
23100 /etc
66480 /boot
501072 /web
514516 /lib
984492 /opt
3503984 /var
7956192 /usr
74235656 /home
তারপরে এটি ধুয়ে ফেলা এবং পুনরাবৃত্তি করার একটি কেস । আপনার মনে হয় এমন সাব-ডাইরেক্টরিগুলি লক্ষ্য করে নিন যেগুলি খুব বড়, তাদের জন্য কমান্ডটি চালান এবং সমস্যাটি কী কারণে ঘটছে তা খুঁজে বের করুন।
দ্রষ্টব্য: আমি ব্যবহার du
এর -x
পতাকা জিনিস এক ফাইলসিস্টেম (আমি এসএসডি এবং RAID5 মধ্যে ক্রস মাউন্ট জিনিষ বেশ জটিল ব্যবস্থা আছে) সীমাবদ্ধ রাখা।
দ্রষ্টব্য 2: যে 2>/dev/null
কোনও ত্রুটি বার্তাকে বিস্মরণে পুনর্নির্দেশ করে। যদি তারা আপনাকে বিরক্ত না করে তবে এটি বাধ্যতামূলক নয়।
du
man পৃষ্ঠা: "প্রতিটি ফাইলের ডিস্কের ব্যবহার সংক্ষেপ, যাও recursively ডিরেক্টরি জন্য।"
আমার প্রিয় সমাধানটি বেশ কয়েকটি ভাল উত্তরের মিশ্রণ ব্যবহার করে।
du -aBM 2>/dev/null | sort -nr | head -n 50 | more
du
যুক্তি:
-a
"সমস্ত" ফাইল এবং ডিরেক্টরিগুলির জন্য। এটি কেবল ডিরেক্টরিগুলির জন্য ছেড়ে দিন-BM
মেগাবাইট (এম) ব্লক আকার (বি) এ আকারগুলি আউটপুট করতে2>/dev/null
- "অনুমতি অস্বীকৃত" ত্রুটি বার্তা বাদ দিন (ধন্যবাদ @ অলি)sort
যুক্তি:
-n
"সংখ্যার" জন্য-r
"বিপরীত" এর জন্য (সবচেয়ে বড় থেকে ছোট)head
যুক্তি:
-n 50
শুধুমাত্র শীর্ষ 50 ফলাফলের জন্য।more
কম নম্বর ব্যবহার করা ছেড়ে দিনদ্রষ্টব্য: sudo
আপনার অ্যাকাউন্টে অ্যাক্সেসের অনুমতি নেই এমন ডিরেক্টরি অন্তর্ভুক্ত করার জন্য উপসর্গ ।
/ ভারে শীর্ষস্থানীয় 10 বৃহত্তম ফাইল এবং ডিরেক্টরিগুলি দেখানোর উদাহরণ (গ্র্যান্ড মোট সহ)।
cd /var
sudo du -aBM 2>/dev/null | sort -nr | head -n 10
7555M .
6794M ./lib
5902M ./lib/mysql
3987M ./lib/mysql/my_database_dir
1825M ./lib/mysql/my_database_dir/a_big_table.ibd
997M ./lib/mysql/my_database_dir/another_big_table.ibd
657M ./log
629M ./log/apache2
587M ./log/apache2/ssl_access.log
273M ./cache
কিবিবি এর উত্তর সঠিক তবে এটি অনেক ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ফাইল থাকবে যেহেতু এটি প্রতিটি আইটেমের জন্য একটি নতুন এলএস প্রক্রিয়া শুরু করবে।
শিশু প্রক্রিয়াগুলি ছাড়াই সন্ধানের সাহায্যে একটি দ্রুত সংস্করণ হ'ল বাইট (% s) এবং পাথ (% পি) এ আকার মুদ্রণের জন্য প্রিন্টফ ব্যবহার করা হবে
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
বর্তমান ফোল্ডারে বৃহত্তম টপ -20 ডিরেক্টরিগুলি (পুনরাবৃত্তভাবে) প্রদর্শন করতে, নিম্নলিখিত ওয়ান-লাইনারটি ব্যবহার করুন:
du -ah . | sort -rh | head -20
বা (আরও ইউনিক্স ভিত্তিক):
du -a . | sort -rn | head -20
বর্তমান ডিরেক্টরিতে শীর্ষ -২০ টি বৃহত্তম ফাইলের জন্য (পুনরাবৃত্তভাবে):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
বা মানব পাঠযোগ্য আকার সহ:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
দয়া করে মনে রাখবেন যে
-h
এটিsort
কেবল জিএনইউর জন্য উপলব্ধ , সুতরাং এটি ওএসএক্স / বিএসডি সঠিকভাবে কাজ করতে আপনাকে এটিকে ইনস্টল করতে হবেcoreutils
। তারপরে এর ফোল্ডারটি আপনারটিতে যুক্ত করুনPATH
।
সুতরাং এই এলিয়াসগুলি আপনার আরসি ফাইলগুলিতে থাকার জন্য দরকারী (প্রতিবার যখন আপনার প্রয়োজন হবে):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
এটি এর জন্য নিখুঁত প্রয়োগের মতো বলে মনে হচ্ছে find
:
find $DIRECTORY -type f -exec ls -s {} \; | sort -n | tail -n 5
এই কমান্ডটি ডিরেক্টরিগুলিতে সমস্ত ফাইল সন্ধান করবে $DIRECTORY
এবং ls -s
সেগুলি সম্পাদন করবে। শেষ কমান্ডটি একটি ফাইলের প্লাস্টিকের ফাইলের বরাদ্দ করা মাপ প্রিন্ট করে। ফলাফল সংখ্যাগতভাবে বাছাই করা হয় এবং শেষ পাঁচটি এন্ট্রি প্রদর্শিত হয়। সুতরাং ফলস্বরূপ আপনি সবচেয়ে বড় 5 ফাইল $DIRETORY
বা যে কোনও উপ-ডিরেক্টরিতে দেখবেন । আপনি প্রবেশ করলে tail -n 1
আপনি কেবলমাত্র বৃহত্তম ফাইল দেখতে পাবেন।
তবুও আপনি এর সাথে প্রচুর পরিমাণে খেলতে পারেন find
। উদাহরণস্বরূপ আপনি এমন ফাইল সন্ধান করতে পারবেন যা n দিনের ( -ctime -n
) বা বিশেষ ব্যবহারকারীদের ( -user johndoe
) এর চেয়ে কম বয়সী are
যখন আমার সার্ভারগুলিতে আরও ফাঁকা স্থান প্রয়োজন তখন আমি এই কমান্ডটি ব্যবহার করি। এটি 502 মেগাবাইটের পরে সমস্ত ফাইল বড় এবং "ডু- এইচ" ফাইলগুলির আরও ভাল তালিকা তৈরি করে এবং পাইপের পরে "সাজানো-এন" ফাইলের আকারের অনুসারে সংখ্যার কাঠির তালিকা তৈরি করে।
find / -size +50M -type f -exec du -h {} \; | sort -n
বাওবাব চেষ্টা করুন, এটি আপনাকে ফাইল এবং ফোল্ডারগুলির একটি গ্রাফিকাল ওভারভিউ দেয়, আপনি আসল স্পেস হগগুলি কোথায় তা দেখতে পারেন এবং একটি ক্লিকের মাধ্যমে সেগুলি মুছুন https://help.ubuntu.com/commune/Baobab
আপনি আকার দ্বারা ফাইল বাছাই করতে পারে:
find . -type f -exec du -h {} \; | sort -k1 -h
এটি du -h
প্রতিটি ফাইলের জন্য কেবল ফাইলগুলি এবং সম্পাদন করে, যা ফাইলের আকার দেখায়। শেষ অবধি, আমরা প্রথম কলাম অনুসারে find
/ এর আউটপুটটি du
সারণি করি (মানব পাঠযোগ্য বিন্যাসে)।
সর্বশেষ মুদ্রিত ফাইলটি সবচেয়ে বড়।
ডিরেক্টরিগুলি এড়িয়ে যাওয়ার সময় আপনি বৃহত্তম ফাইলগুলি দেখতে কমান্ডটি ব্যবহার করতে পারেন:
sudo find / -type f -printf “%s\t%p\n” | sort -n | tail -1
find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10
100MiB এর চেয়ে বড় ফাইলগুলি খুঁজে পেতে (এটি 100MB নয়, আপনি বিভ্রান্ত হলে এখানে দেখুন ):
find / -size +100M -ls
নীচের কমান্ডটি ফোল্ডারে বৃহত্তম 5 ফাইল প্রদর্শন করবে $DIRECTORY
:
find $DIRECTORY -type f -exec ls -s {} \; | sort -n | tail -n 5
ব্যবহার du
: নীচের কমান্ডটি যা ডু ব্যবহার করে, হোম ওয়ার্কিং ফোল্ডারে 20 টি বৃহত্তম আকারের ডিরেক্টরিগুলি প্রদর্শন করে:
sudo du -a /home | sort -n -r | head -n 20
এখন সাব-ফোল্ডার সহ বৃহত্তম ডিরেক্টরি / ফাইল প্রদর্শন করার জন্য, চালান:
du -Sh | sort -rh | head -n 10
ব্যবহার ls
:
/ বিন ডিরেক্টরিতে শীর্ষস্থানীয় পাঁচটি ফাইলের তালিকা করতে, নীচের কমান্ডটি ইস্যু করুন:
ls -lSh /bin | head -5
উদাহরণস্বরূপ আপনি এখানে ডিস্ক ব্যবহার বিশ্লেষক বা বাওবাও যেমন ব্যবহার করেছেন তেমন ব্যবহার করতে পারেন ।
অনুরূপ প্রশ্নের উত্তরে উল্লেখ করা একটি দুর্দান্ত, ব্যবহারকারী-বান্ধব সরঞ্জাম হ'ল NCurses Disk Usage
সরঞ্জাম:
sudo ncdu /