হ্যাশ দ্বারা ওএসএক্স-এ ফাইলের সদৃশ অনুসন্ধান করুন


14

আমি ওএসএক্স (ম্যাভারিক তবে আরও সাধারণভাবে ওএসএক্স) একটি নির্ধারিত ফাইল সন্ধানের জন্য একটি উপায় অনুসন্ধান করছি। বিশেষত আমি নিম্নলিখিতগুলি করতে চাই:
একটি ফাইল_001 দেওয়া থাকলে আমি অনুসন্ধান করতে চাই যদি ফাইল সিস্টেমে এই ফাইলটির একটি অনুলিপি থাকে।
শুধু একই নামের সাথে নয়, আমি তুলনা পদ্ধতিটি MD5, SHA ইত্যাদির মতো একটি হ্যাশিং অ্যালগরিদম হতে চাই would

বেশিরভাগ "নকল ফাইল সন্ধানকারী" আমি একটি ড্রাইভ / সিস্টেমে সমস্ত নকল সন্ধানের চেষ্টা করেছি। পরিবর্তে আমি একটি ফাইল জমা দিতে আগ্রহী এবং এর সদৃশগুলি অনুসন্ধান করতে চাই।

কেউ কি জানেন যে এই জাতীয় প্রোগ্রামের উপস্থিতি আছে? স্পটলাইটের কিছু অস্পষ্ট কাজ হতে পারে?


1
প্রদত্ত ফাইলটি অনুলিপি কিনা তা নির্ধারণ করতে হ্যাশ সম্পর্কে সতর্ক থাকুন। এই পদ্ধতির .mlx ফাইল (অ্যাপল মেল এর ফাইল ফর্ম্যাট) দিয়ে ব্যর্থ হতে পারে, উদাহরণস্বরূপ। স্পটলাইটে সহায়তা হিসাবে, ওএসএক্স মেইল ​​ফাইলগুলিতে মেটাডেটা যুক্ত করে। দুটি ভিন্ন পাথে একই ইমেলের ম্যাসেজ-আইডি সমান হলেও আলাদা আলাদা মেটাডেটা থাকতে পারে। ঠিক একই কাঁচা ইমেলযুক্ত দুটি ফাইলের জন্য পৃথক হ্যাশ।
জন ডি

উত্তর:


17

আপনি ব্যবহার করতে পারেন fdupes। এটিতে কোনও নির্দিষ্ট ফাইলের নকল অনুসন্ধানের বিকল্প নেই, তবে আপনি কেবল ফাইলের জন্য আউটপুট গ্রেপ করতে পারেন:

fdupes -r1 .|grep filename

-rডিরেক্টরিতে -1পুনরাবৃত্তি করে এবং একক লাইনে প্রতিটি গ্রুপের নকল ফাইল মুদ্রণ করে।

অন্যান্য দরকারী উদাহরণ:

fdupes -r . বর্তমান ডিরেক্টরিতে সমস্ত সদৃশ ফাইল খুঁজে পাওয়া যায়;

fdupes -r . -dN প্রতিলিপিগুলির প্রতিটি গ্রুপ থেকে প্রথম সদৃশ ব্যতীত সমস্ত মুছুন;

fdupes -r dir1 dir2|grep dir1/|xargs rmঅনুলিপি মুছে ফেলা dir1

আপনি ইনস্টল করতে পারেন fdupesসঙ্গে brew install fdupes


1
বর্তমান ডিরেক্টরিতে নকল নয় এমন ফাইলগুলির তালিকা থাকা কি সম্ভব?
গাগারাইন

7

কিছু শেল কমান্ড দিয়ে আপনি সহজেই এটি তৈরি করতে পারেন:

  • find ~ -type f -exec md5 -r '{}' \; > /tmp/md5.list

    আপনার সমস্ত ফাইলের উপরে এমডি 5 হ্যাশগুলির একটি তালিকা তৈরি করবে।

  • grep $(md5 -q FILE-TO-SEARCH) /tmp/md5.list

    ফাইল-টু-অনুসন্ধানের এমডি 5 হ্যাশ অনুসন্ধান করবে

প্রথম কমান্ডটি চালানো (বিশেষত আপনি যদি এটি পুরো ডিস্ক জুড়ে চালান) তবে অনেক দিন সময় লাগবে।


আপনি যদি কেবল একটি ফাইল অনুসন্ধান করতে চান তবে আপনি এটিও ব্যবহার করতে পারেন

SIZE=$(stat -f '%z' FILE-TO-SEARCH)
MD5=$(md5 -q FILE-TO-SEARCH)
find ~ -type f -size ${SIZE}c | while read f; do
    [[ $MD5 = $(md5 -q "$f") ]] && echo $f
done

খুব প্রথম পাসটি সঠিক আকারের ক্রিয়াকলাপ দ্বারা সন্ধান করা উচিত।
বাইজিক্লপ

@ বিজিক্লপ আপনি যদি কেবল একটি ফাইল অনুসন্ধান করতে চান তবে হ্যাঁ। আপনি যদি বেশ কয়েকটি অনুসন্ধান করতে চান তবে একবারে সূচক তৈরি করা দ্রুত এবং কেবল সূচি ফাইলের পরে অনুসন্ধান করুন।
nohillside

1
এটি অবশ্যই সত্য, আমি প্রশ্নটিতে এই বাক্যটি কেবল লক্ষ্য করেছি: "আমি পরিবর্তে, একটি ফাইল জমা দেওয়ার আগ্রহী এবং এর সদৃশগুলি অনুসন্ধান করতে চাই" "
বিজিক্লপ

প্রথমে তারিখের তুলনা করা, তারপরে আংশিক হ্যাশ, তারপরে পূর্ণ হ্যাশ থাকা উচিত fdupes দ্রুত হওয়া উচিত।
গাগারাইন

1

আপনি যদি FILE_001 এর জন্য কমান্ডটিতে আকার এবং হ্যাশটি বিকল্প করে থাকেন তবে এটি কাজ করা উচিত।

198452 বাইট আমার ব্যবহৃত ফাইল আকার এবং এমডি 5 হ্যাশ ফাইলটি 3915dc84b4f464d0d550113287c8273b

find . -type f -size 198452c -exec md5 -r {} \; |
    grep -o "3915dc84b4f464d0d550113287c8273b\ \(.*\)" | awk '{print $2}'

আউটপুটটি ফাইন্ড কমান্ডে প্রেরিত ডিরেক্টরি সম্পর্কিত পাথের নামগুলির সাথে ফাইলগুলির একটি তালিকা হবে।

এই পদ্ধতির সুবিধা রয়েছে যে এটি কেবলমাত্র হ্যাশ ফাইলগুলিকে কেবল আপনার আসল আকারের সাথে মেলে এবং কেবল হ্যাশের সাথে মেলে এমন ফাইলগুলির নাম আউটপুট দেয়।


0

আপনি যদি স্ক্রিপ্টগুলির সাথে জগাখিচুড়ি করতে না চান, আপনি ম্যাক অ্যাপ স্টোরের আরাক্সিসের ডুপ্লিকেট ফাইলগুলি $ 10 সন্ধানের সাথে আপনার যে আচরণটি চান সেটি ঘনিষ্ঠ হতে পারেন । তাদের ওয়েবসাইটে 7 দিনের একটি ডেমোও রয়েছে। প্রতিটি ফাইলের জন্য হ্যাশ গণনা করে ডুপ্লিকেট ফাইল অনুসন্ধান করুন।

আপনি যে আচরণটি করতে চান সে সম্পর্কে আপনি আনুমানিকভাবে একটি ফোল্ডার স্থাপন করতে পারেন যার বিষয়ে আপনি উদ্বিগ্ন হন এবং তারপরে আপনি যে ফোল্ডারগুলি সন্ধান করতে চান তা যুক্ত করুন This এটি অনুসন্ধানের পথে অন্য ডুপগুলিও জানাবে।

এই অ্যাপ্লিকেশনটিতে ফলাফলগুলি বোঝা খুব সহজ করে তোলে এমন অনেকগুলি দুর্দান্ত বাছাই করার বৈশিষ্ট্য রয়েছে।

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