লিনাক্স সমস্ত ফাইল সিস্টেমের ইভেন্টগুলি ফাইল তৈরি করা, সংশোধন করা, অপসারণের জন্য একটি দুর্দান্ত ইন্টারফেস সরবরাহ করে। ইন্টারফেসটি inotifyসিস্টেম কলগুলির পরিবার, এই কলগুলির উপকারের জন্য ব্যবহারকারী স্পেস ইউটিলিটিগুলি inotify-toolsউবুন্টুতে প্যাকেজ দ্বারা সরবরাহ করা হয় (মহাবিশ্বের সংগ্রহস্থলটিতে উপলব্ধ)। আপনার যদি এটি ইতিমধ্যে না থাকে তবে এর মাধ্যমে ইনস্টল করুন:
sudo apt-get install inotify-tools
inotify-toolsসরবরাহ inotifywaitএবং inotifywatchবাইনারি, আমাদের প্রথমটি দরকার।
সুতরাং আপনি যে asciidoctor -q some_fileকোনও .adocফাইল সংশোধন করার সময় কমান্ডটি চালাতে চান ( some_fileতার দ্বারা প্রতিস্থাপন করা হবে), যদি তাই ধরে নেওয়া হয় যে আপনার .adocফাইল ডিরেক্টরিতে রয়েছে /foo/bar, আপনি ঘড়িটি সেট করতে পারেন:
inotifywait -qm --event modify --format '%w' /foo/bar/*.adoc
-qনিঃশব্দ মোড সক্ষম করে, inotifywaitনিজের থেকে কোনও তথ্য দেয় না
-m মনিটর মোড সক্ষম করে, অন্যথায় এটি প্রথম ইভেন্টের পরে প্রস্থান করবে
--event modify, আমরা কেবল modifyইভেন্টে আগ্রহী অর্থাৎ যখন কোনও ফাইল সংশোধিত হয়। অন্যান্য সম্ভাব্য মান অন্তর্ভুক্ত open, closeইত্যাদি
--format %w, আমরা কেবল ফাইলের নামটিই চাই যা অন্য তথ্যের গুচ্ছের চেয়ে পরিবর্তিত হয় কারণ আমরা ফাইলের নামটি অন্য কমান্ডের ইনপুট হিসাবে ব্যবহার করব
/foo/bar/*.adocডিরেক্টরি .adocঅধীন সমস্ত ফাইল প্রসারিত করা হবে/foo/bar
এখন উপরেরটি আপনাকে ফাইলের নামটি দেখাবে যখনই যেকোন সংশোধন করা হয়েছে, এখন ফাইল নেমে কমান্ড চালাতে (কমান্ডটি STDIN এর মাধ্যমে আর্গুমেন্ট গ্রহণ করে ধরে নিবে):
inotifywait -qm --event modify --format '%w' /foo/bar/*.adoc | asciidoctor -q
আপনি ডিরেক্টরিতে একটি পুনরাবৃত্ত ঘড়ি সেটআপ করতে পারেন, তারপরে আপনাকে grepকেবলমাত্র পছন্দসই ফাইলগুলি ফিল্টার করার জন্য ব্যবহার করতে হবে । এখানে -rডিরেক্টরিতে পুনরাবৃত্তভাবে ( ) ঘড়ির সেট করে /foo/barএবং grepকেবলমাত্র .adocফাইলগুলি ফিল্টার করতে ব্যবহার করে:
inotifywait -qrm --event modify --format '%w%f' /foo/bar | grep '\.adoc$' | asciidoctor -q
ডিরেক্টরিগুলি দেখার সময় আউটপুট ফর্ম্যাট স্পেসিফায়ার %wডিরেক্টরি নামের সাথে সংশোধন করে, সুতরাং আমাদের %fফাইলের নামটি নেওয়া দরকার। ফাইলগুলি দেখার সময়, %fখালি স্ট্রিংয়ের সমাধান হবে।
মনে রাখবেন, আপনি inotifywaitডিমন ( -d) মোডেও চালাতে পারেন , আপনি পুরো জিনিসটি স্ক্রিপ্টও করতে পারেন, এবং / অথবা ব্যাকগ্রাউন্ডে চালাতে পারেন, এবং / অথবা এটির সাথে আরও অন্যান্য বিকল্প খেলতে পারেন।
এছাড়াও, আপনি চাইলে asciidoctorআপনার পছন্দের অন্য কোনও কমান্ডের সাথে প্রতিস্থাপন করতে পারেন।
man inotifywaitআরও ধারণা পেতে চেক করুন ।