আপনি ফাইলগুলিতে বা অন্য ইনপুট স্ট্রিমগুলি /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