লিনাক্স সমস্ত ফাইল সিস্টেমের ইভেন্টগুলি ফাইল তৈরি করা, সংশোধন করা, অপসারণের জন্য একটি দুর্দান্ত ইন্টারফেস সরবরাহ করে। ইন্টারফেসটি 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
আরও ধারণা পেতে চেক করুন ।