ফাইল পরিবর্তনের জন্য একটি ফোল্ডার ওএসএক্স নিরীক্ষণ করুন তারপরে বাশ স্ক্রিপ্টটি [নকল] চালান


10

সম্ভাব্য সদৃশ:
ওএস এক্স এবং উবুন্টুতে রিয়েল টাইমে ফাইল সিস্টেম দেখুন

আমি ওএসএক্সে একটি স্থানীয় ডিরেক্টরি নিরীক্ষণের জন্য একটি কার্যকর পদ্ধতির সন্ধান করছি এবং যদি সেই ডিরেক্টরিতে কোনও ফাইল পরিবর্তন করা হয় তবে ফাইলগুলিকে গিথুব করার জন্য বাশ স্ক্রিপ্ট চালান script

ফাইল পরিবর্তনের জন্য কোনও ডিরেক্টরি নিরীক্ষণের জন্য কোনও সুপারিশ সরঞ্জাম, তারপরে কোনও ক্রিয়া ট্রিগার করা, অর্থাত্ কোনও স্ক্রিপ্ট?


1
এই প্রশ্নটি হ'ল একটি সফ্টওয়্যার প্রস্তাবনা বর্ডারলাইন, যা সাধারণত সুপার ব্যবহারকারীর কাছে অনুমোদিত হয় না । আপনার মূল প্রশ্নটি জিজ্ঞাসা করার জন্য এটিকে পুনরায় চেষ্টা করুন, "যখনই ফাইলগুলি যুক্ত / মোছা / পরিবর্তন করা হয় আমি কীভাবে স্বয়ংক্রিয়ভাবে পরিবর্তন করতে এবং গিট রেপো থেকে চাপতে পারি?"
ডারথ অ্যান্ড্রয়েড

@ দারথ অ্যান্ড্রয়েড, এফএকিউ-তে অভিযুক্ত, এই প্রশ্নটি যেমন দাঁড়িয়েছে ঠিক আছে is ওপি শপিং বা পরামর্শ কেনার পরামর্শ দিচ্ছে না।
এফস্মিথ

1
@ এএফএইচপি ওপি কোনও কিছুর জন্য সুপারিশ চেয়েছে, যা বিষয়টির বাইরে নয় off যদিও প্রধান সমস্যাটি হ'ল তারা তাদের সমস্যাটি ব্যাখ্যা করছেন না এবং কেবল তাদের চেষ্টা করা সমাধানের জন্য জিজ্ঞাসা করছেন।
ছদ্মবেশ করুন

সমস্যাটি সহজ। পরিবর্তনের জন্য একটি ডিরেক্টরি নিরীক্ষণ করুন এবং এই পরিবর্তনগুলি কোনও সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ। সবই ওপি-র প্রশ্নে। আপনার দেওয়া লিঙ্কটির উত্তর রয়েছে। ভাল কল.
এফস্মিথ

উত্তর:


19

আপনার সংগ্রহশালা থেকে fswatch ব্যবহার :

fswatch . 'git commit -avm "snapshot at ${date}"'

এই সাধারণ উদাহরণটি কেবল ইতিমধ্যে ভান্ডারে থাকা ফাইলগুলিতে পরিবর্তনগুলি ধরবে।


এটি ওএস এক্স-এ অন্তর্নির্মিত ফোল্ডার ক্রিয়াকলাপের সাহায্যে করা যেতে পারে above উপরে প্রদত্ত লিঙ্কের মাধ্যমে উত্তরটি দেখুন।
এফস্মিথ

1
ওপি কী অর্জন করতে চায় তা ব্যাখ্যা করে একটি উদাহরণ যুক্ত করে আপনি নিজের উত্তরটি প্রসারিত করতে পারেন। শুধু একটি লিঙ্ক পোস্ট করা উত্সাহিত হয় না।
slhck

এটি উত্সাহজনক দেখায়। আমি চিন্তা আমি / কিছু / Dir ./some/dir/bash_script.sh ./fswatch চালাতে পারে
টিগন স্নাইডারের

+1 - আমি fswatchআপনার উত্তর পড়ার পরে চেষ্টা করেছি । দুর্দান্ত ইউটিলিটি - inotifyলিনাক্সের সাথে খুব সমান এবং এটি ওএস এক্স এর নেটিভ ব্যবহার করেfsevent
cwd

2

একটি বিকল্প কেবল চালু করা ব্যবহার করা হবে। এই হিসাবে একটি সম্পত্তি তালিকা সংরক্ষণ করুন ~/Library/LaunchAgents/com.superuser.445907.plist, এবং এটি দিয়ে launchctl load ~/Library/LaunchAgents/com.superuser.445907.plistবা লগ আউট এবং ফিরে প্রবেশ করে লোড করুন ।

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.superuser.445907</string>
    <key>Program</key>
    <string>/Users/username/script</string> <!-- ~/ doesn't work -->
    <key>WatchPaths</key>
    <array>
        <string>/Users/username/Folder/</string>
    </array>
    <key>ThrotteInterval</key>
    <integer>0</integer> <!-- run at most every 0 seconds, by default 10 -->
</dict>
</plist>

লঞ্চ করা কেবল তখনই ফাইলগুলিতে পরিবর্তনগুলি নিবন্ধভুক্ত করে যখন সেগুলি পরমাণুভাবে সংরক্ষণ করা হয়, বা মুছে ফেলা হয় এবং প্রতিবার সেভ করার পরে পুনরায় তৈরি করা হয়। বেশিরভাগ ওএস এক্স অ্যাপ্লিকেশনগুলি ডিফল্টরূপে পারমাণবিক সংরক্ষণ সম্পাদন করে, তবে উদাহরণ হিসাবে টেক্সটমেট এবং ভিম করে না। দেখা ফোল্ডারগুলির সাবফোল্ডারগুলির পরিবর্তনগুলি সনাক্ত করা যায়নি।

launchctl unload $path && launchctl load $path একটি plist পরিবর্তন প্রয়োগ করে।

আরও তথ্যের জন্য দেখুন man launchdএবং man launchd.plist


আকর্ষণীয় পদ্ধতির। আমি এটি একবার দেখে নেব এবং আপনার কাছে ফিরে আসব। সাহায্য করার জন্য ধন্যবাদ.
তেগান স্নাইডার

এই পদ্ধতির অবশ্যই তার সীমাবদ্ধতা রয়েছে। আপনি দেখা ফোল্ডারগুলির সাবফোল্ডারগুলিতে পরিবর্তনগুলি সনাক্ত করতে পারবেন না। এই কৌশলটি আপনাকে কোন ফাইলের কোনও ইভেন্ট (নতুন ফাইল, পরিবর্তন, মোছা ইত্যাদি) ঘটনাও জানায় না - কেবল এই পথে কোনও ইভেন্ট ছিল।
ভলমাইক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.