কিভাবে Emacs কঠোর লিঙ্ক ভাঙ্গা থেকে রোধ করবেন?


13

ধরা যাক আমার কাছে দুটি ফাইল রয়েছে file1এবং file2:

$ echo aaa >file1
$ ln file1 file2

তারপরে আমি পরীক্ষা করে দেখি যে ইনোডগুলি একই:

$ ls -i
18749779 file1  18749779 file2

যা দেখায় যে দুটি ফাইলই আসলে একই রকম। এখন আমি file1ইম্যাক্সে সম্পাদনা করব এবং উদাহরণ সহ একটি পাঠ্য যুক্ত করলাম bbb, এবং এটি সংরক্ষণ করুন এবং ইমাক্স থেকে প্রস্থান করুন।

এখন আমি পেয়েছি:

$ ls -i
18749781 file1  18749779 file2
$ cat file1
aaa
bbb
$ cat file2
aaa

তাই শক্ত লিঙ্কটি নষ্ট হয়ে গেছে। মনে রাখবেন যে আমি যখন ফাইলটি সম্পাদনা করি vimবা যখন আমি কেবল এটি করি তখন এটি ঘটে না echo bbb >>file1..

আমি কীভাবে ইমাকগুলিকে হার্ড লিঙ্কগুলি ভাঙ্গতে রোধ করতে পারি?

হালনাগাদ:

আমার মনে আছে

(require 'backup-dir)
(setq bkup-backup-directory-info
      '((t  "~/.emacs-backups/" ok-create full-path )))

আমার ~/.emacsinit ফাইল এ। আমি যদি পরিবর্তে file1ব্যবহার করে সম্পাদনা করি তবে আমি বর্তমান ডিরেক্টরিটিতে emacs -Q file1একটি ফাইল পেয়েছি file1~যা লিঙ্ক করে file2(একই ইনোড রয়েছে) তবে file1~পরিবর্তন করা হয়নি (সুতরাং এটি পুরানোটির সাথে অভিন্ন file1) .. এটি আমার ইচ্ছা নয়। আমি উভয়ই একই ফাইল হতে চাই file1এবং file2আপডেট করা ফাইলের বিষয়বস্তু অন্তর্ভুক্ত করতে চাই ..


3
ঠিক আছে, আমি মনে করি আমি সমাধানটি পেয়েছি: যদি আমি (setq backup-by-copying t)আমার ~/.emacs
ডিআইডি

উত্তর:


10

@ হকন তার নিজের সমস্যাটি এর সাথে সমাধান করেছেন:

(setq backup-by-copying t)

আপনি যদি ডিফল্ট আচরণ ধরে রাখতে চান এবং back-up-by-copyingকেবল হার্ড-লিঙ্কযুক্ত ফাইলের জন্য ব্যবহার করেন তবে আপনি এটি পরিবর্তে ব্যবহার করতে পারেন (এবং এতে backup-by-copyingসেট রেখে যান nil):

(setq backup-by-copying-when-linked t)

এছাড়াও, @ হারাল্ড দ্বারা নির্দেশিত হিসাবে আপনি back-up-by-copyingকেবল পৃথক ফাইলের জন্য এই বৈশিষ্ট্যটি চালু করতে পরিবর্তে ফাইল-স্থানীয় চলক হিসাবে সেট করতে পারেন ।

ইমাস ম্যানুয়াল থেকে এই আচরণের ব্যাখ্যা :

পুরানো ফাইলটি অনুলিপি করে বা এর নাম পরিবর্তন করে ব্যাকআপ ফাইলগুলি তৈরি করা যেতে পারে। পুরানো ফাইলটির একাধিক নাম (হার্ড লিঙ্ক) থাকলে এটি একটি পার্থক্য করে। যদি পুরানো ফাইলটির নামটি ব্যাকআপ ফাইলে রাখা হয়, তবে বিকল্প নামগুলি ব্যাকআপ ফাইলের নাম হয়ে যায়। যদি পুরনো ফাইলটির পরিবর্তে অনুলিপি করা হয়, তবে আপনি যে ফাইলটি সম্পাদনা করছেন তার বিকল্প নামের নাম থাকবে এবং সেই নামগুলিতে অ্যাক্সেস করা সামগ্রীগুলি নতুন বিষয়বস্তু হবে।

আরও আলোচনার জন্য লিঙ্কযুক্ত পৃষ্ঠাটি দেখুন।


2
নোট করুন যে আপনি সমস্ত ফাইলের জন্য এই আচরণটি না চান সে ক্ষেত্রে আপনি ফাইলটিকে স্থানীয় ভেরিয়েবল হিসাবে সেট করতে পারেন ।
হ্যারাল্ড হানচে-ওলসেন

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