আমার ডিস্কে নকল ফাইলগুলি খুঁজে পাওয়া সম্ভব যা কিছুটা বিট অভিন্ন তবে বিভিন্ন ফাইল-নাম রয়েছে?
st_size
, কেবলমাত্র একইগুলির সাথে একটিগুলি মুছে ফেলা এবং তারপরে কেবল মিলে st_size
s এর জন্য md5sums গণনা করে সময় হ্রাস করতে পারেন ।
আমার ডিস্কে নকল ফাইলগুলি খুঁজে পাওয়া সম্ভব যা কিছুটা বিট অভিন্ন তবে বিভিন্ন ফাইল-নাম রয়েছে?
st_size
, কেবলমাত্র একইগুলির সাথে একটিগুলি মুছে ফেলা এবং তারপরে কেবল মিলে st_size
s এর জন্য md5sums গণনা করে সময় হ্রাস করতে পারেন ।
উত্তর:
fdupes
এটি করতে পারেন। থেকে man fdupes
:
সদৃশ ফাইলগুলির জন্য প্রদত্ত পথ অনুসন্ধান করে। এই জাতীয় ফাইলগুলি ফাইলের আকার এবং MD5 স্বাক্ষরের তুলনা করে পাওয়া যায়, তারপরে একটি বাই বাই বাই তুলনা করে।
ডেবিয়ান বা উবুন্টুতে, আপনি এটি দিয়ে এটি ইনস্টল করতে পারেন apt-get install fdupes
। ফেডোরা / রেড হ্যাট / সেন্টোস এ আপনি এটি ইনস্টল করতে পারেন yum install fdupes
। আর্চ লিনাক্সে আপনি pacman -S fdupes
এবং জেন্টুতে, ব্যবহার করতে পারেন emerge fdupes
।
আপনার ফাইল সিস্টেমের মূল থেকে নেমে আসা একটি চেক চালনা করতে, যা সম্ভবত সময় এবং মেমরির একটি উল্লেখযোগ্য পরিমাণে গ্রহণ করবে, এর মতো কিছু ব্যবহার করুন fdupes -r /
।
মন্তব্যে জিজ্ঞাসা করা হিসাবে, আপনি নিম্নলিখিতটি করে সবচেয়ে বড় সদৃশগুলি পেতে পারেন:
fdupes -r . | {
while IFS= read -r file; do
[[ $file ]] && du "$file"
done
} | sort -n
আপনার ফাইলের নামগুলিতে নতুন লাইন থাকলে এটি ভেঙে যাবে।
fdupes ....... | xargs ls -alhd | egrep 'M |G '
মানব পাঠযোগ্য বিন্যাসে ফাইল রাখার জন্য এবং শুধুমাত্র মেগাবাইটস বা গিগাবাইটের আকারযুক্ত ফাইলগুলি। আসল আউটপুট অনুসারে কমান্ডটি পরিবর্তন করুন।
du
পাইপযুক্ত sort
আপনাকে বলবে।
আর একটি ভাল সরঞ্জাম হ'ল fslint
:
ডুপ্লিকেট ফাইল এবং সমস্যাযুক্ত ফাইলের নাম ইত্যাদি সহ ফাইল সিস্টেমে বিভিন্ন সমস্যা খুঁজে পাওয়ার জন্য fslint একটি টুলসেট is
পৃথক কমান্ড লাইন সরঞ্জামগুলি জিইউআই ছাড়াও উপলব্ধ এবং সেগুলি অ্যাক্সেস করার জন্য, একটি স্ট্যান্ডার্ড ইনস্টলের ক্ষেত্রে / usr / share / fslint / fslint ডিরেক্টরিতে to PATH- এ পরিবর্তন বা যুক্ত করতে পারে can এই ডিরেক্টরিতে প্রতিটি কমান্ডের একটি --help বিকল্প রয়েছে যা এর পরামিতিগুলি আরও বিশদ জানায়।
findup - find DUPlicate files
ডিবিয়ান-ভিত্তিক সিস্টেমগুলিতে, আপনি এটির সাথে এটি ইনস্টল করতে পারেন:
sudo apt-get install fslint
আপনি যদি তৃতীয় পক্ষের সরঞ্জামগুলি না চান বা ইনস্টল করতে না চান তবে আপনি নিজেও এটি করতে পারেন। পথ ধরনের প্রোগ্রাম কাজ গণক হয় ফাইল চেকসাম । একই এমডি 5সামযুক্ত ফাইলগুলিতে প্রায় অবশ্যই একই ডেটা থাকে। সুতরাং, আপনি এর মতো কিছু করতে পারেন:
find / -type f -exec md5sum {} \; > md5sums
gawk '{print $1}' md5sums | sort | uniq -d > dupes
while read d; do echo "---"; grep $d md5sums | cut -d ' ' -f 2-; done < dupes
নমুনা আউটপুট (এই উদাহরণে ফাইলের নাম একই, তবে এটি পৃথক হলে এটিও কাজ করবে):
$ while read d; do echo "---"; grep $d md5sums | cut -d ' ' -f 2-; done < dupes
---
/usr/src/linux-headers-3.2.0-3-common/include/linux/if_bonding.h
/usr/src/linux-headers-3.2.0-4-common/include/linux/if_bonding.h
---
/usr/src/linux-headers-3.2.0-3-common/include/linux/route.h
/usr/src/linux-headers-3.2.0-4-common/include/linux/route.h
---
/usr/src/linux-headers-3.2.0-3-common/include/drm/Kbuild
/usr/src/linux-headers-3.2.0-4-common/include/drm/Kbuild
---
এটি ইতিমধ্যে উল্লিখিত উত্সর্গীকৃত সরঞ্জামগুলির তুলনায় অনেক ধীর হবে তবে এটি কার্যকর হবে।
st_size
, কেবলমাত্র এই আকারের একটি ফাইল রয়েছে তা মুছে ফেলা এবং তারপরে কেবল একই ফাইলের মধ্যে md5sums গণনা করা st_size
।
সংক্ষিপ্ত উত্তর: হ্যাঁ
দীর্ঘ সংস্করণ: উইকিপিডিয়া fdupes এন্ট্রি একবার দেখুন , এটি প্রস্তুত সমাধানের বেশ সুন্দর তালিকায় খেলাধুলা করে। অবশ্যই আপনি আপনার নিজের লিখতে পারেন, তাই না যে কঠিন - মত হ্যাশ প্রোগ্রাম diff
, sha*sum
, find
, sort
এবং uniq
কাজ করা উচিত নয়। এমনকি আপনি এটি এক লাইনে রাখতে পারেন এবং এটি এখনও বোধগম্য হবে।
যদি আপনি বিশ্বাস করেন যে কোনও হ্যাশ ফাংশন (এখানে MD5) আপনার ডোমেনে সংঘাত-মুক্ত রয়েছে:
find $target -type f -exec md5sum '{}' + | sort | uniq --all-repeated --check-chars=32 \
| cut --characters=35-
অভিন্ন ফাইলের নাম গোছানো করতে চান? not_uniq.sh
আউটপুট ফর্ম্যাট করতে একটি সাধারণ স্ক্রিপ্ট লিখুন :
#!/bin/bash
last_checksum=0
while read line; do
checksum=${line:0:32}
filename=${line:34}
if [ $checksum == $last_checksum ]; then
if [ ${last_filename:-0} != '0' ]; then
echo $last_filename
unset last_filename
fi
echo $filename
else
if [ ${last_filename:-0} == '0' ]; then
echo "======="
fi
last_filename=$filename
fi
last_checksum=$checksum
done
তারপরে find
আপনার স্ক্রিপ্টটি ব্যবহার করতে আদেশটি পরিবর্তন করুন :
chmod +x not_uniq.sh
find $target -type f -exec md5sum '{}' + | sort | not_uniq.sh
এটি বেসিক ধারণা। সম্ভবত find
আপনার ফাইলের নামগুলিতে কিছু অক্ষর রয়েছে change (যেমন স্থান)
আমি fdupes, jdupes এর সাম্প্রতিক বর্ধিত কাঁটা যুক্ত করার চিন্তা করেছি , যা fdupes (যেমন আকারের ফিল্টার) এর চেয়ে দ্রুত এবং আরও বেশি বৈশিষ্ট্যযুক্ত সমৃদ্ধ হওয়ার প্রতিশ্রুতি দেয় :
jdupes . -rS -X size-:50m > myjdups.txt
এটি পুনরাবৃত্তভাবে বর্তমান ডিরেক্টরিতে 50MB এর চেয়ে বড় নকল ফাইলগুলি খুঁজে পেতে পারে এবং ফলাফলের তালিকাটি myjdups.txt এ আউটপুট দেয়।
দ্রষ্টব্য, আউটপুটটি আকার অনুসারে বাছাই করা হয়নি এবং যেহেতু এটি বিল্ট না হওয়া হিসাবে প্রদর্শিত হচ্ছে, তাই এটি অর্জনের জন্য আমি উপরের @ ক্রিস_ডাউন উত্তরটি মানিয়েছি:
jdupes -r . -X size-:50m | {
while IFS= read -r file; do
[[ $file ]] && du "$file"
done
} | sort -n > myjdups_sorted.txt
উইকিপিডিয়ায় এই কাজের জন্য উপলব্ধ ওপেন সোর্স সফ্টওয়্যারটির একটি তালিকা সহ একটি নিবন্ধ ছিল ( http://en.wikedia.org/wiki/List_of_dusedate_file_finders ) তবে এটি এখন মুছে ফেলা হয়েছে ।
আমি যুক্ত করব যে fslint এর GUI সংস্করণটি খুব আকর্ষণীয়, কোন ফাইলগুলি মুছতে হবে তা নির্বাচন করার জন্য মুখোশ ব্যবহার করার অনুমতি দেয়। সদৃশ ফটো পরিষ্কার করতে খুব দরকারী।
লিনাক্সে আপনি এটি ব্যবহার করতে পারেন:
- FSLint: http://www.pixelbeat.org/fslint/
- FDupes: https://en.wikipedia.org/wiki/Fdupes
- DupeGuru: https://www.hardcoded.net/dupeguru/
অনেক সিস্টেমে 2 টি শেষ কাজ (উইন্ডোজ, ম্যাক এবং লিনাক্স) আমি এফএসলিন্টের জন্য পরীক্ষা করিনি
এই যে আমার গ্রহণ এখানে:
find -type f -size +3M -print0 | while IFS= read -r -d '' i; do
echo -n '.'
if grep -q "$i" md5-partial.txt; then echo -e "\n$i ---- Already counted, skipping."; continue; fi
MD5=`dd bs=1M count=1 if="$i" status=noxfer | md5sum`
MD5=`echo $MD5 | cut -d' ' -f1`
if grep "$MD5" md5-partial.txt; then echo "\n$i ---- Possible duplicate"; fi
echo $MD5 $i >> md5-partial.txt
done
এটি পৃথক যে এটি কেবল ফাইলটির প্রথম 1 এমবি পর্যন্ত হ্যাশ করে।
এটিতে কয়েকটি সমস্যা / বৈশিষ্ট্য রয়েছে:
আমি ভিডিও ক্লিপগুলির তুলনা করতে এটি ব্যবহার করি যাতে এটি আমার পক্ষে যথেষ্ট।