আপনি ফাইলগুলিতে বা অন্য ইনপুট স্ট্রিমগুলি /dev/null
ডিরেক্টরিতে না লিখে লিখতে পারেন । আপনি যদি ডিরেক্টরিতে /dev/null
এটি স্থানান্তরিত করার চেষ্টা করেন তবে এটি /dev/null
একটি ডিরেক্টরি হিসাবে নয় তবে একটি ফাইল হিসাবে একটি ত্রুটির কথা জানায় ।
তবে, যেহেতু আপনি পরীক্ষা নিরীক্ষা করতে চান /dev/null
, আপনাকে প্রথমে একটি ফাইলকে ওভাররাইটে স্থানান্তরিত করার পরিণতিগুলি /dev/null
এবং সেই পরিস্থিতি থেকে কীভাবে পুনরুদ্ধার করবেন তা জানার পরামর্শ দেওয়া হচ্ছে :
দ্বারা প্রস্তাবিত হিসাবে @Rmano মধ্যে এই উত্তরটি যে প্রশ্ন, যাতে নিয়ে পরীক্ষা করার জন্য /dev/null
বরং এটি একটি কপি তৈরি করা উচিত আমরা এবং তারপর আমাদের পরীক্ষা না। সুতরাং, আসুন /tmp/null
এটি তৈরি করুন এবং আমাদের পরীক্ষামূলক উদ্দেশ্যে এটি ব্যবহার করুন:
sudo mknod -m 0666 /tmp/null c 1 3
এখন থেকে, /tmp/null
আমাদের /dev/null
সমস্ত উদ্দেশ্যে:
আমাদের একটি তৈরি করা যাক test_file
এবং একটি test_dir
একটি ডিরেক্টরি নামক ভিতরে ask_ubuntu
।
$ mkdir ask_ubuntu
$ cd ask_ubuntu
$ touch test_file
$ mkdir test_dir
$ echo "Let us test if we can recover our test_file." > test_file
নিম্নলিখিত ask_ubuntu
ডিরেক্টরি বিষয়বস্তু দেখায় :
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:10 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
-rw-r--r-- 1 aditya aditya 0 Mar 18 17:10 test_file
এখন আমাদের সরাতে চেষ্টা test_file
করতে /tmp/null
এবং বিষয়বস্তু দেখতে ask_ubuntu
:
$ sudo mv test_file /tmp/null # This succeeds
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
কমান্ডটি সফল হয় এবং test_file
আর উপলব্ধ হয় না। এখন সরাতে চেষ্টা test_dir
করতে /tmp/null
যা সফল না:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dir
এখনও ভিতরে উপস্থিত ask_ubuntu
:
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
এখন, আমরা আমাদের test_file
থেকে পুনরুদ্ধার করতে পারি কিনা তা চিহ্নিত করুন /tmp/null
:
$ cat /tmp/null
Let us test if we can recover our test_file.
সুতরাং, এটি এখনও আছে এবং /tmp/null
কোন একটি বিশেষ ফাইল ওভাররাইট করা হয়েছিল এবং এটি অন্য কোনও সাধারণ ফাইলের মতো হয়ে গেছে। আমরা /tmp/null
অন্য ফাইলগুলির মতো অনুলিপি করে আমাদের ফাইলটি পুনরুদ্ধার করতে পারি :
$ cp /tmp/null our_test_file
$ cat our_test_file
Let us test if we can recover our test_file.
ফাইল পুনরুদ্ধার হয়েছে।
বিঃদ্রঃ:
যদি আপনি /tmp/null
সরাসরি ব্যবহার করে এই আদেশগুলি তৈরি না করে চেষ্টা করেন /dev/null
; দৌড়ে ফাইলটি পুনরুদ্ধার করার বিষয়টি নিশ্চিত করুন (যদি আপনার প্রয়োজন হয়) cp /dev/null our_test_file
; এবং /dev/null
যত তাড়াতাড়ি সম্ভব লিঙ্কযুক্ত প্রশ্নে প্রদত্ত নিম্নলিখিত কমান্ডগুলি চালিয়ে আমাদের সিস্টেমে এটি বিদ্যমান উদ্দেশ্যে পুনরুদ্ধার করুন:
$ sudo rm /dev/null
$ sudo mknod /dev/null c 1 3
$ sudo chmod 666 /dev/null
উপসংহার:
সুতরাং, ডিরেক্টরিটি স্থানান্তর করা অসম্ভব /dev/null
এবং তাই সেখান থেকে ডিরেক্টরিটি পুনরুদ্ধার করার কোনও প্রশ্নই আসে না।
যতক্ষণ না ফাইল সম্পর্কিত, আপনি যদি সরাসরি ফাইলগুলিতে সরিয়ে নিয়ে যান তবে /dev/null
উপরে বর্ণিত হিসাবে আপনি এটি পুনরুদ্ধার করতে পারেন। তবে দুটি ব্যতিক্রম রয়েছে:
আপনার চলমান সময়কালে sudo mv test_file /dev/null
এবং cp /dev/null our_test_file
সিস্টেমের কোনও মূল স্ক্রিপ্ট যদি চলমান echo "Whatever text the root script wants to send to /dev/null" > /dev/null
(বা অন্যান্য অনুরূপ কমান্ড) দ্বারা এটি ওভাররাইট করে । তারপরে আমাদের ফাইলটি পুনরুদ্ধার করার কোনও সহজ উপায় নেই।
যদি আপনি এই দুটি কমান্ড চালানোর মধ্যে সিস্টেমটি পুনরায় বুট করেন। /dev/null
বুটে পুনরায় তৈরি হয়, তাই আমরা কম্পিউটারটি বন্ধ করে দিলে আমাদের ফাইলটি হারিয়ে যায়।
তবে আপনি যদি ইনপুট স্ট্রিমের মতো পুনরুদ্ধার করতে চান তবে আপনি তা পুনরুদ্ধার echo "Stream this line to /dev/null" > /dev/null
করতে পারবেন না যেহেতু /dev/null
অযাচিত ফাইল এবং ইনপুট স্ট্রিমগুলি নিষ্পত্তি করার জন্য একটি বিশেষ ফাইল এবং উইকিপিডিয়া নিবন্ধ যেমন উল্লেখ করেছে, এটি এটি থেকে পড়া কোনও প্রক্রিয়াতে কোনও ডেটা সরবরাহ করে না।
তথ্যসূত্র: উইকিপিডিয়া নিবন্ধ/dev/null