রিয়েল-টাইমে কোনও ডিরেক্টরি সামগ্রী অন্তর্ভুক্ত করার জন্য কি কোনও অন্তর্নির্মিত লিনাক্স কমান্ড রয়েছে?


8

রিয়েল-টাইমে কোনও ডিরেক্টরি অন্তর্ভুক্ত লিনাক্স কমান্ড প্রদর্শন করতে পারে? "টেল-ফাই ফাইল_নাম" কমান্ডের অনুরূপ যা কোনও ফাইলের বিষয়বস্তু রিয়েল-টাইমে প্রদর্শন করে?


4
কীভাবেwatch -n1 ls
জো

ওয়াচটি দেখুন ( linfo.org/watch.html )
ডেভিড সেগন্ডস

4
একেবারে অন্তর্নির্মিত নয়, তবে inotifytoolsপ্যাকেজটি inotifyফাইল তৈরির ঘটনাগুলি ঘটতে দেওয়ার জন্য লিনাক্সের বৈশিষ্ট্যটি ব্যবহার করে ।
চিপনার

উত্তর:


6

আপনি এটি ব্যবহার করে করতে পারেন watch। এটি সম্পূর্ণ রিয়েল-টাইম নয়, তবে যথেষ্ট পরিমাণে (এক সেকেন্ডের দশমাংশ পর্যন্ত):

watch -n0.1 ls

ম্যানুয়াল থেকে:

-n, --interval seconds
          Specify update interval.  The command will not allow quicker than 0.1 second interval, in which the smaller values are converted.

1
আপনি যদি নতুন ফাইল আরও স্পষ্টভাবে দেখতে চান ls -ltতবে তালিকার শীর্ষে ls -ltrনতুন ফাইলগুলি দেখতে বা নীচে নতুন ফাইলগুলি দেখতে ব্যবহার করুন। তারপরে, এই নতুন ফাইলগুলি হাইলাইট করতে, watch -dসর্বশেষ আপডেটে watch --differences=cumulativeপরিবর্তনগুলি হাইলাইট করতে বা watchশুরু হওয়ার পর থেকে সমস্ত পরিবর্তন হাইলাইট করতে ব্যবহার করুন।
গ্যারিজোহান

@ jm666 - watch tail lsবা watch head lsসঠিক সাথে সর্বশেষ ফাইলগুলি দেখাবে ক্রম যেমন বিকল্প, -lt সঙ্গে মাথা বা -ltr সঙ্গে লেজ
এএফএইচ

@ জেএম 6666 - অবশ্যই এটি আজেবাজে কথা যদি আক্ষরিকভাবে গ্রহণ করা হয়: আমি এটিকে শর্টহ্যান্ড হিসাবে ব্যবহার করছিলামwatch {options} 'ls {options} | tail {options}'
এএফএইচ

@ জেএম 666: অনুরোধটি সেই আদেশের জন্য ছিল যা একটি ডিরেক্টরিতে tail -fপরিবর্তিত হয় ফাইলের পরিবর্তনের পরিবর্তে। আপনার মূল কমান্ডটি watchএটি খুব ভালভাবে করেনি। আমি মনে করি এটি হবে, কমান্ডটি এটি চালিত হলে যথাযথভাবে তৈরি করা হবে। কখনও কখনও আপনাকে sh -cআরও জটিল কমান্ড মোড়ানোর জন্য ব্যবহার করতে হয়। আমি সংক্ষিপ্তভাবে ইনোটাইফাই-সরঞ্জামগুলিতে দেখেছি এবং কোনও কমান্ডও দেখতে পেলাম না যা ডিরেক্টরিতে পরিবর্তিত ইভেন্টগুলি নয় কেবল একটি ডিরেক্টরিতে পরিবর্তিত হবে।
গ্যারিজহান

2

আমি এটি লিখেছি, আমি আশা করি এটি আপনার প্রয়োজন ছিল। এটি একটি নয় built-in Linux command, তবে এটি বেশিরভাগ ইউনিক্স বাক্সে উপস্থিত সাধারণ প্রোগ্রামগুলি ব্যবহার করে।

sleepপ্রয়োজন মতো সময় সামঞ্জস্য করুন । আমি কমপক্ষে 2 সেকেন্ডের মান ব্যবহার করব। cmd="ls"পুনরাবৃত্তিযোগ্য কাঠামোর জন্য বা cmd="find DIRNAME"পুনরাবৃত্তি অনুসন্ধান করতে ব্যবহার করুন । নোট করুন যে শেষের ক্ষেত্রে DIRNAME/আপনি সমস্ত ফাইল এবং ডিরেক্টরিতে একটি উপসর্গ পাবেন।

 echo "" | awk '{while ( 1 ) {cmd="find ."; delete b;c=0; while ( ( cmd | getline result ) > 0 ) {test=1;c++;n=0;for (i in a) {n++;if (a[i]==result) {b[c]=i; test=0; break;}} if (test) {n++;a[n]=result;b[c]=n;print "##NEW## "result }} close (cmd); for (i in a) {test=1;for (j in b) {if (b[j]==i) {test=0;break}} if (test) {print "##DELETED## "a[i]; delete a[i]}} system("sleep 5") } }'

একটি ত্রুটি পাওয়া গেছে যা iএকটি লুপ করার পরে হারানো মূল্য তৈরি করে যা স্ক্রিপ্টটিকে কিছু লিনাক্স মেশিনে প্রতিবার নতুন হিসাবে দেখায়
নুটিটেক্স


0

আপনি inotifytoolsএটির কমান্ড-লাইন ব্যবহার করতে পারেন ।

আপনি inotifyডিরেক্টরিটি নিরীক্ষণ করতে ব্যবহার করতে পারেন , এবং এটি ডিরেক্টরিটি এবং ডিরেক্টরিতে থাকা ফাইলগুলির জন্য ইভেন্টগুলি ফিরিয়ে দেবে।

আর একটি সরঞ্জাম যা ব্যবহার করা যেতে পারে তা হ'ল inotifywatch:

sudo inotifywatch -v -r /foo

-rপুনরাবৃত্তভাবে সমস্ত উপ-ডিরেক্টরিগুলি দেখার জন্য আপনি যুক্ত করতে পারেন । তবে এই সমাধানটি সদ্য নির্মিত ফাইলগুলিতে পরিবর্তনগুলি সনাক্ত করতে পারে না

সুতরাং আর একটি সমাধান ব্যবহার করা হয় inotifywait:

inotifywait -m --format "%f" /foo

এখানে নতুন তৈরি হওয়া সমস্ত test*ফাইলের সামগ্রী দেখানোর আরও একটি উদাহরণ এখানে দেওয়া হয়েছে /tmp:

inotifywait -m --format "%f" /tmp | grep --line-buffered ^test | xargs -L1 -I% sudo cat /tmp/% 2> /dev/null
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.