হার্ড লিঙ্কগুলির সাথে সমস্ত সদৃশ ফাইলগুলি কীভাবে প্রতিস্থাপন করবেন?


20

আমার কাছে দুটি ফাইল রয়েছে যার মধ্যে বিভিন্ন ফাইল রয়েছে। প্রথম ফোল্ডার থেকে কিছু ফাইলের দ্বিতীয় ফোল্ডারে হুবহু কপি থাকে। আমি তাদের একটি কঠিন লিঙ্কযুক্ত প্রতিস্থাপন করতে চাই। আমি এটা কিভাবে করবো?


2
ওএস এবং ফাইল সিস্টেম সরবরাহ করুন।
স্টিভেন

ঠিক আছে, আমি ওবুন্টু 15.04 এ ext4 ব্যবহার করি তবে কেউ যদি অন্য কোনও OS এর জন্য উত্তর সরবরাহ করে তবে আমি নিশ্চিত যে এটি এই প্রশ্নটি পড়ার জন্য কারও পক্ষে সহায়ক হতে পারে।
qdii

উত্তর:


20

আমি লিনাক্সের 4 টি কমান্ড-লাইন সমাধান জানি। সমস্ত পছন্দসই rdfindউপলভ্য হওয়ায় আমার পছন্দসইটি এখানে তালিকাভুক্ত সর্বশেষ ।

fdupes

  • এটি সর্বাধিক প্রস্তাবিত / সর্বাধিক পরিচিত হিসাবে প্রতীয়মান।
  • এটি ব্যবহার করা সবচেয়ে সহজ, তবে এর একমাত্র ক্রিয়া হ'ল সদৃশগুলি মুছে ফেলা।
  • ডুপ্লিকেটগুলি আসলে অনুলিপি হয় তা নিশ্চিত করার জন্য (চালানোর জন্য চিরকালের জন্য নেওয়া হয় না), ফাইলগুলির মধ্যে তুলনাগুলি প্রথমে ফাইলের আকার দ্বারা করা হয়, তারপরে এমডি 5 হ্যাশ, তারপরে বাই বাই বাই তুলনা।

নমুনা আউটপুট (বিকল্পগুলির সাথে "শো আকার", "পুনরাবৃত্ত"):

$ fdupes -Sr .
17 bytes each:                          
./Dir1/Some File
./Dir2/SomeFile

hardlink

  • নাম হিসাবে চিহ্নিত, হার্ডলিঙ্কগুলির সাথে পাওয়া ফাইলগুলি প্রতিস্থাপন করুন।
  • একটি --dry-runবিকল্প আছে।
  • বিষয়বস্তুগুলি কীভাবে তুলনা করা হয় তা নির্দেশ করে না, তবে অন্যান্য সমস্ত বিকল্পের বিপরীতে অ্যাকাউন্ট ফাইল মোড, মালিক এবং পরিবর্তিত সময় গ্রহণ করে না।

নমুনা আউটপুট (নোট করুন যে আমার দুটি ফাইলের পরিবর্তিত সময়ের থেকে কিছুটা পৃথক পৃথক সময় রয়েছে, তাই দ্বিতীয় রানে আমি এটিকে উপেক্ষা করতে বলি):

$ stat Dir*/* | grep Modify
Modify: 2015-09-06 23:51:38.784637949 -0500
Modify: 2015-09-06 23:51:47.488638188 -0500

$ hardlink --dry-run -v .
Mode:     dry-run
Files:    5
Linked:   0 files
Compared: 0 files
Saved:    0 bytes
Duration: 0.00 seconds

$ hardlink --dry-run -v -t .
[DryRun] Linking ./Dir2/SomeFile to ./Dir1/Some File (-17 bytes)
Mode:     dry-run
Files:    5
Linked:   1 files
Compared: 1 files
Saved:    17 bytes
Duration: 0.00 seconds

ডাফের

  • ব্যবহারকারী তারপরে যে ফাইলগুলি ব্যবহার করে তা সন্ধান করার জন্য তৈরি; কোন ক্রিয়া উপলব্ধ আছে।
  • তুলনা ফাইল আকার দ্বারা করা হয়, তারপর sha1 হ্যাশ।
    • হ্যাশ sha256, sha384 বা sha512 এ পরিবর্তিত হতে পারে।
    • বাইট বাই বাইসের তুলনা করতে হ্যাশ অক্ষম করা যায়

নমুনা আউটপুট (বিকল্প "পুনরাবৃত্ত") সহ:

$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File

rdfind

  • বিকল্পগুলির একটি অস্বাভাবিক বাক্য গঠন রয়েছে (নকল করার অর্থ find?)
  • সদৃশ ফাইল গ্রহণের জন্য ক্রিয়াকলাপের বেশ কয়েকটি বিকল্প (মুছুন, সিমলিঙ্কগুলি তৈরি করুন, হার্ডলিঙ্কগুলি তৈরি করুন)
  • একটি শুকনো রান মোড আছে।
  • তুলনাগুলি ফাইলের আকারের দ্বারা করা হয়, তারপরে প্রথমে বাইটস, তারপরে সর্বশেষ বাইটস, তারপরে হয় এমডি 5 (ডিফল্ট) বা sha1।
  • প্রাপ্ত ফাইলগুলির র‌্যাঙ্কিংটি অনুমানযোগ্য করে তোলে যে কোন ফাইলটি আসল হিসাবে বিবেচিত হয়।

নমুনা আউটপুট:

$ rdfind -dryrun true -makehardlinks true .
(DRYRUN MODE) Now scanning ".", found 5 files.
(DRYRUN MODE) Now have 5 files in total.
(DRYRUN MODE) Removed 0 files due to nonunique device and inode.
(DRYRUN MODE) Now removing files with zero size from list...removed 0 files
(DRYRUN MODE) Total size is 13341 bytes or 13 kib
(DRYRUN MODE) Now sorting on size:removed 3 files due to unique sizes from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on md5 checksum:removed 0 files from list.2 files left.
(DRYRUN MODE) It seems like you have 2 files that are not unique
(DRYRUN MODE) Totally, 17 b can be reduced.
(DRYRUN MODE) Now making results file results.txt
(DRYRUN MODE) Now making hard links.
hardlink ./Dir1/Some File to ./Dir2/SomeFile
Making 1 links.

$ cat results.txt 
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1 1 17 2055 24916405 1 ./Dir2/SomeFile
DUPTYPE_WITHIN_SAME_TREE -1 1 17 2055 24916406 1 ./Dir1/Some File
# end of file

1
"তাহলে এমডি 5 (ডিফল্ট) বা শ 1 হবে" " এর অর্থ এই নয় যে ফাইলগুলি অভিন্ন। যেহেতু হ্যাশ গণনা করার জন্য প্রোগ্রামটি পুরো ফাইলটি যেভাবেই পড়া দরকার, তাই এটি কেবল বাই-বাই বাইটের পুরো ফাইলের সাথে তুলনা করা উচিত। সিপিইউ সময়ও বাঁচায়।
এন্ডোলিথ

@endolith এ কারণেই আপনি সর্বদা শুকনো রান দিয়ে শুরু করুন, কী হবে তা দেখার জন্য ...
ইজকাটা

1
তবে সফ্টওয়্যারটির মূল বিষয়টি হ'ল আপনার জন্য নকল ফাইলগুলি সনাক্ত করা। যদি আপনাকে ম্যানুয়ালি ডাবল-পরীক্ষা করতে হয় যে ফাইলগুলি আসলে নকল, তবে এটি কোনও ভাল।
এন্ডোলিথ


2
আপনার যদি অভিন্ন আকার, প্রথম-বাইট এবং শেষ-বাইটযুক্ত এন ফাইল থাকে তবে সেগুলি অন্যথায় আলাদা হয়, এটি নির্ধারণ করে যে সরাসরি তুলনা করে এন প্রয়োজন ! জুড়ি তুলনা। সেগুলি হ্যাশ করে তারপরে হ্যাশগুলির সাথে তুলনা করা আরও দ্রুত হতে পারে বিশেষত বড় ফাইল এবং / অথবা প্রচুর সংখ্যক ফাইলের জন্য। যে ফিল্টারটি পাস করে সেগুলি যাচাই করতে সরাসরি তুলনা করতে পারে। (অথবা শুরু করার জন্য আরও ভাল হ্যাশ ব্যবহার করুন))
এ্যালান ডি স্মেট

6

ডুপ্লিকেট কমান্ডার উইন্ডোজ একটি সম্ভাব্য সমাধান:

সদৃশ কমান্ডার হ'ল একটি ফ্রিওয়্যার অ্যাপ্লিকেশন যা আপনাকে আপনার পিসিতে নকল ফাইলগুলি সন্ধান এবং পরিচালনা করতে দেয়। সদৃশ কমান্ডার অনেকগুলি বৈশিষ্ট্য এবং সরঞ্জাম নিয়ে আসে যা আপনাকে সেই ডুপ্লিকেটগুলি থেকে আপনার ডিস্কের স্থান পুনরুদ্ধার করতে দেয়।

বৈশিষ্ট্য:

Replacing files with hard links
Replacing files with soft links
... (and many more) ...

1

লিনাক্সের জন্য আপনি এখানে বাশ স্ক্রিপ্ট পেতে পারেন ।


2

সদৃশ ও একই ফাইল অনুসন্ধানকারী উইন্ডোজের আরও একটি সমাধান:

সদৃশ ও একই ফাইল অনুসন্ধানকারী (ডুপ্লিকেট অনুসন্ধানকারী) হ'ল একই ফাইলটিতে নকল ফাইল (ক্লোনস) এবং এনটিএফএসের হার্ড লিঙ্কগুলি অনুসন্ধান করার জন্য একটি অ্যাপ্লিকেশন। ফাইলের নাম নির্বিশেষে এটি সদৃশ ফাইলের সামগ্রীগুলি অনুসন্ধান করে (সত্য বাইট-টু-বাইট তুলনা ব্যবহৃত হয়)। এই অ্যাপ্লিকেশনটি কেবল নকল ফাইলগুলি মুছতে বা এগুলিকে অন্য কোনও স্থানে নিয়ে যাওয়ার অনুমতি দেয় না, পাশাপাশি এনটিএফএসের হার্ড লিঙ্কগুলির সাথে অনুলিপিও প্রতিস্থাপন করতে পারে (অনন্য!)

এখানে চিত্র বর্ণনা লিখুন


1

আমার কম্পিউটারে একটি নিফটি ফ্রি সরঞ্জাম ছিল যার নাম লিংক শেল এক্সটেনশন; হার্ড লিঙ্ক এবং সিম্বলিক লিঙ্কগুলি তৈরি করার জন্য এটি কেবল দুর্দান্ত ছিল না, তবে জংশনগুলিও! এছাড়াও, এটি কাস্টম আইকনগুলিকে যুক্ত করেছে যা আপনাকে সহজেই বিভিন্ন ধরণের লিঙ্কগুলি সনাক্ত করতে দেয়, এমনকি ইনস্টল করার পূর্বে উপস্থিত অস্তিত্বগুলিও; লাল তীরগুলি উদাহরণস্বরূপ হার্ড লিঙ্কগুলিকে উপস্থাপন করে, যখন সবুজ প্রতীকী লিঙ্কগুলি উপস্থাপন করে ... এবং চেইনগুলি জংশনকে উপস্থাপন করে।

আমি দুর্ভাগ্যক্রমে কিছুক্ষণ আগে সফ্টওয়্যারটি আনইনস্টল করেছিলাম (বিভিন্ন প্রোগ্রামের একটি গণ-আনইনস্টলেশনে), তাই আমি নিজে থেকে আর কোনও লিঙ্ক তৈরি করতে পারি না, তবে উইন্ডোজ যখনই কোনও হার্ড, সিম্বলিক বা জংশন লিঙ্ক সনাক্ত করে তখনও আইকনগুলি স্বয়ংক্রিয়ভাবে দেখা যায়।


1

আমি খুব jdupes সুপারিশ । এটি fdupes এর বর্ধিত কাঁটাচামচ , তবে এর মধ্যে রয়েছে:

  • সংক্ষেপে --linkhard, বা -Lসংক্ষেপে - নতুন কমান্ড-লাইন বিকল্পগুলির একটি গোছা
  • সমস্ত বড় ওএস প্ল্যাটফর্মের জন্য স্থানীয় সমর্থন
  • গতি গড় fdupes তুলনায় 7 গুণ বেশি গতিবেগ বলা হয়েছে

আপনার প্রশ্নের জন্য, আপনি কেবল কার্যকর করতে পারেন $ jdupes -L /path/to/your/files

প্রকল্পটি এখনও সক্রিয় বিকাশের অধীনে থেকে আপনি তার গিটহাব রেপো থেকে সর্বশেষ উত্সটি ক্লোন করতে এবং তৈরি করতে চাইতে পারেন । উইন্ডোজ বাইনারিগুলিও এখানে সরবরাহ করা হয়। প্যাকেজড বাইনারিগুলি কিছু লিনাক্স / বিএসডি ডিস্ট্রোজে উপলব্ধ - আসলে আমি এটি প্রথম পেয়েছি $ apt search

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