একটি নির্দিষ্ট ইনোডের লিঙ্ক


14

আমার কাছে এমন একটি ফাইল রয়েছে যা মুছে ফেলা হয়েছিল তবে এটি এখনও একটি প্রোগ্রামের দ্বারা খোলা রয়েছে। আমি lsof ব্যবহার করে ইনোড নম্বরটি পেয়েছি। আমি কীভাবে সেই ইনোডে ফিরে একটি হার্ড লিঙ্ক তৈরি করতে পারি?

উত্তর:


31

আপনি এটির কোনও লিঙ্ক তৈরি করতে পারবেন না তবে আপনি এটি ফিরে পেতে পারেন। আসুন একটি পরীক্ষা করা যাক:

$ echo blurfl >myfile.txt
$ tail -f myfile.txt &
$ rm myfile.txt

myfile.txt এখন চলে গেছে, তবে ইনোডটি টেল কমান্ড দ্বারা জীবিত রাখা হয়েছে। আপনার ফাইলটি ফিরে পেতে প্রথমে ইনডটি রেখে প্রক্রিয়াটির পিআইডি সন্ধান করুন:

$ ps auxw | grep tail
sunny      409  0.0  0.0   8532   824 pts/5    S    18:07   0:00 tail -f myfile.txt

পিআইডি 409. chdir থেকে / proc / 409 / fd / এবং তালিকাভুক্ত করুন:

dr-x------ 2 sunny sunny  0 2009-07-24 18:07:18 .
dr-xr-xr-x 7 sunny sunny  0 2009-07-24 18:07:17 ..
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:33 0 -> /dev/pts/5
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:33 1 -> /dev/pts/5
lrwx------ 1 sunny sunny 64 2009-07-24 18:07:18 2 -> /dev/pts/5
lr-x------ 1 sunny sunny 64 2009-07-24 18:07:33 3 -> /home/sunny/tmp/myfile.txt (deleted)

প্রসেস / [পিআইডি] / এফডি / ডিরেক্টরিগুলিতে প্রক্রিয়াটি ব্যবহার করে এমন সমস্ত ফাইলের বর্ণনাকারী ফাইল করার জন্য সিমলিংক রয়েছে। সেক্ষেত্রে সিমিলিংক "3" মুছে ফেলা ফাইলটিতে নির্দেশ করে। সুতরাং, ফাইলটি পুনরুদ্ধার করতে, সামগ্রীগুলিকে একটি নতুন ফাইলে অনুলিপি করুন:

$ cat 3 >/home/mydir/saved_file.txt

আমি দূরবর্তী অতীতে ফাইল সিস্টেম ডিবাগারের সাহায্যে এটি করেছি (যেমন "ডিবাগস ডাম্প"), তবে ধারণাটি একই same
জেরাল্ড কম্বস 16

1
সুন্দর উত্তর, +1
এ্যাসডমিন

এটি আমার পক্ষে কাজ করে না। প্রদত্ত যে '3' হ'ল ড্যাংলিং সিমলিংক, কোনও "আসল" ফাইল বর্ণনাকারী নয়, এটি সর্বদা খালি ফাইল তৈরি করে।
রব চ্যাটার

4
@ রব: না, তা হয় না। যদি ফাইল বর্ণনাকারী ব্যবহার হয়, সিমলিংক বৈধ ডেটাতে নির্দেশ করে, অন্যথায় প্রথম স্থানে সিমলিংকটি উপস্থিত না থাকত। ফাইলটি বন্ধ হয়ে গেলে, সিমিলিংকটি অদৃশ্য হয়ে যায়। "3" এর পরে আপনার কাছে জায়গা আছে, তাই না? যদি তা না হয় তবে পরিবর্তে আপনি বর্তমান শেলটিতে ফাইল বর্ণনাকারী 3 এর সামগ্রীগুলি আউটপুট পাবেন এবং এটি সম্ভবত খালি।
রোদ 256

1
এর সাথে একমাত্র সমস্যা হ'ল যদি ফাইলটি এখনও লেখা থাকে তবে আপনার তৈরি করা অনুলিপি কেটে যাবে। লেখার কাজটি বন্ধ হয়ে যাওয়ার এবং ফাইলটি বন্ধ করার মধ্যে সম্ভবত কোনও সময় নেই যাতে আপনি একটি সম্পূর্ণ ফাইল পান।
কায়েস


-8

লিনাক্সের অধীনে এটি করার কোনও পোর্টেবল উপায় নেই। সম্ভবত সর্বোত্তম উপায়টি হ'ল ফাইল-সিস্টেমের সমস্ত ক্রিয়াকলাপ বন্ধ হয়ে যায়, ফাইলটি উন্মুক্ত করে রাখা প্রোগ্রামটি হত্যা করে, ফাইল সিস্টেমটিকে আনমাউন্ট করে এবং ডিরেক্টরিতে পুনরায় সংযুক্ত করতে একটি ফাইল-সিস্টেম ডিবাগার ব্যবহার করে। আপনার যদি এনএফএসের মাধ্যমে ফাইল সিস্টেম রফতানি করা থাকে তবে কমপক্ষে এনএফএসের কয়েকটি সংস্করণ আপনাকে এনএফএসের মধ্যে ফাইল ডেটা পড়তে দেয়।


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