ডিফের মতো একটি লিনাক্স সরঞ্জাম রয়েছে যা ফাইল এবং ডিরেক্টরিগুলির পুনরাবৃত্তির সাথে তুলনা করবে তবে এর সাথে তুলনা করার পাশাপাশি: বর্ধিত বৈশিষ্ট্য, এসিএল, সি প্রসঙ্গে?
ডিফের মতো একটি লিনাক্স সরঞ্জাম রয়েছে যা ফাইল এবং ডিরেক্টরিগুলির পুনরাবৃত্তির সাথে তুলনা করবে তবে এর সাথে তুলনা করার পাশাপাশি: বর্ধিত বৈশিষ্ট্য, এসিএল, সি প্রসঙ্গে?
উত্তর:
আমি এবং পতাকাগুলি rsync -aHAX --delete
যুক্ত করতে মনে রাখার আগে এটি করেছি ।-n
-i
এটি সামান্য বিপরীত, তবে আমার সাথে সহ্য করুন। মূল rsync
কমান্ডটি হ'ল আপনাকে দুটি ডিরেক্টরি একসাথে সিঙ্ক করতে হবে। তবে -n -i
এটি সিঙ্ক না করার কারণ (যেমন একটি শুকনো রান করুন) এবং এটি কী করেছে এবং কেন তা মুদ্রণ করে। এটি পার্স করা চমত্কার নয়, তবে আপনি ফাইলের নামটি সহজেই খুঁজে পেতে পারেন এবং পাইপটিকে ls
অনুরূপ করতে পারেন ।
এটি এমটাইমস, তারিখ ইত্যাদিসহ সমস্ত কিছুর পাশাপাশি ডিভাইস নোড, সকেট, নামযুক্ত পাইপ ইত্যাদির উপর নজর রাখবে না above আপনি যা দেখছেন সেটি অ্যাডজাস্ট করতে পারবেন বিকল্পগুলিতে পরিবর্তন করে rsync
, এটি একটি ডিভাইসে সীমাবদ্ধ করে -x
, নরম ও শক্ত লিঙ্ক আচরণ ইত্যাদি ইত্যাদি by
জানোস ইতিমধ্যে বলেছিল কী করতে হবে:
find /a -exec stat -c '%A %C %F %g %u %s %Y %n' {} \; >a
find /b -exec stat -c '%A %C %F %g %u %s %Y %n' {} \; >b
diff -u a b
এবং man 1 stat
বলেছেন:
%A access rights in human readable form
%C SELinux security context string
%F file type
%g group ID of owner
%u user ID of owner
%s total size, in bytes
%Y time of last modification, seconds since Epoch
%n file name
ফাইলের সামগ্রীগুলি তুলনা করতে আপনি ব্যবহার করতে পারেন:
find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 | cut -c 35-
as described here: http://www.commandlinefu.com/commands/view/3555/find-duplicate-files-based-on-size-first-then-md5-hash
find
জিএনইউ-র stat
অন্তর্নির্মিত বৈশিষ্ট্য রয়েছে (এবং কয়েক দশক ধরে জিএনইউ স্ট্যাটাসের পূর্বাভাস দেয়)। আপনি আলাদা করার আগে আউটপুটটি বাছাই করতে চাইবেন। আর আপনার যা দরকার (cd /a && find . ...)
অন্যথায় সব লাইন কারণ পৃথক হবে /a
বনাম /b
ফাইল পাথ হবে।
বর্ধিত বৈশিষ্ট্যগুলির তুলনা করার জন্য আমি এখানে একটি দ্রুত বাশ স্ক্রিপ্ট লিখেছি। এটি প্রতিটি ফাইলের নাম এবং তারপরে বৈশিষ্ট্যের মধ্যে কোনও পার্থক্য মুদ্রণ করে:
cd a
export relpath=[path/to/b/from/a]
for filename in $(find .);
do
echo $filename;
diff <(xattr -l $filename) <(xattr -l $relpath/$filename);
done
অন্য উত্তর থেকে ingণ নেওয়া, আমরা এটির stat
পরিবর্তে এটি ব্যবহার করতে সংশোধন করতে পারি xattr
:
for filename in $(find .);
do
echo $filename;
diff <(stat -c '%A %C %F %g %u %s %Y' $filename) <(stat -c '%A %C %F %g %u %s %Y' $relpath/$filename);
done