ফাইন্ডারে নির্বাচিত ফাইল / ফোল্ডারগুলির সাথে শেল স্ক্রিপ্ট কীভাবে কার্যকর করা যায়?


13

আমি লিনাক্স থেকে আসছি যেখানে নটিলাস বা ডলফিনে ফাইলগুলির সেটগুলির বিরুদ্ধে স্ক্রিপ্ট চালানো সহজ, তবে ওএসএক্সে এটি সহজ নয় তা দেখে আমি একপ্রকার অবাক হয়েছিলাম।

অগ্রাধিকার হিসাবে, আমি অনুসন্ধানকারীর কিছু নির্বাচনের উপর সিটিআরএল-ক্লিক করতে, আমার স্ক্রিপ্টটি বেছে নিতে এবং অগ্রগতি বা যে কোনও ব্যবহারকারীর ইন্টারঅ্যাকশন দেখানোর জন্য একটি টার্মিনাল উইন্ডো পপ আপ করতে সক্ষম হতে চাই।

উত্তর:


8

এটি করার সবচেয়ে সহজ, অন্তর্নির্মিত উপায় হ'ল সন্ধানকারী থেকে টার্মিনাল উইন্ডোতে কেবল আইটেমগুলি টেনে আনাই । আপনি এগুলিকে ফেলে দিলে , টার্মিনাল তাদের (পালানো) পথের নামগুলি "টাইপ" করবে। তারপরে বাকী কমান্ডটি প্রবেশ করতে আপনি নিজের শেলের কমান্ড লাইন সম্পাদনাটি ব্যবহার করতে পারেন। অথবা আপনি যদি ভাবনা চিন্তা করেন, আপনি প্রথমে কমান্ডটি টাইপ করতে পারেন তারপর আইটেমগুলিতে টানুন।

"প্রথম টেনে আনুন" সংস্করণ:

  1. টার্মিনাল উইন্ডোতে শেল প্রম্পট দেখাচ্ছে এমন কিছু ফাইন্ডার আইটেম নির্বাচন করুন এবং টেনে আনুন । টার্মিনালটি (পালানো) পাথের নাম সন্নিবেশ করবে।
  2. টাইপ Control+ A(লাইনের শুরুতে যান; theএটি ডিফল্ট তবে শেল / কনফিগারেশনে পরিবর্তিত হয়)।
  3. আপনার কমান্ড এবং একটি স্থান টাইপ করুন (এটি পথের নামগুলির আগে sertedোকানো হবে)।

"সামনে চিন্তা" সংস্করণ:

  1. যে কোনও ক্রমে, উভয়ই করুন:
    • একটি টার্মিনাল উইন্ডোতে, আপনার কমান্ড এবং স্পেসের প্রথম অংশটি টাইপ করুন (পথের নাম বাদে সবকিছু)।
    • ফাইন্ডারে কিছু আইটেম নির্বাচন করুন ।
  2. নির্বাচিত আইটেমগুলি ফাইন্ডার থেকে টার্মিনাল উইন্ডোতে টানুন যেখানে আপনি কমান্ডটি টাইপ করেছেন।
  3. টার্মিনাল উইন্ডোটি সক্রিয় করুন এবং টিপুন Return

আপনার আরও বেশি স্বয়ংক্রিয় সমাধানের প্রয়োজন হলে আপনি (অন্যান্য উত্তরগুলি নির্দেশিত হিসাবে) অ্যাপলস্ক্রিপ্ট বা অটোমেটরে ফিরে যেতে পারেন। অতিরিক্ত "চলমান অংশগুলি" যেহেতু সমাধানটিতে কিছু জটিলতা যুক্ত করতে পারে, তাই আপনাকে স্বয়ংক্রিয় সমাধানগুলির এক বা একাধিক বাস্তবায়নের জটিলতার বিরুদ্ধে উপরের প্রক্রিয়াটির (ম্যানুয়াল, তবে নমনীয়) সুবিধার উপর নির্ভর করতে হবে।

কিছু অটোমেশন সম্ভাবনার মধ্যে রয়েছে:

  • একটি অ্যাপলস্ক্রিপ্ট ড্রপলেট অ্যাপ্লিকেশন
  • অন্তর্নির্মিত স্ক্রিপ্ট মেনু বা অন্যান্য লঞ্চার দ্বারা সরল অ্যাপলস্ক্রিপ্ট প্রোগ্রাম চালু করা হয়েছে
    • ফাইন্ডারের নির্বাচন থেকে পথের নাম পান
  • একটি অটোমেটর ওয়ার্কফ্লো, অ্যাপ্লিকেশন, বা ফাইন্ডার প্লাগ-ইন
  • একটি এক্সিকিউটেবল .commandফাইল (সাধারণত শেল স্ক্রিপ্ট; এটি টার্মিনালে চালানোর জন্য ফাইন্ডারে খোলা হয় )
    • ফাইন্ডারের নির্বাচন থেকে পথের নামগুলি পান ( ওসাস্ক্রিপ্টের মাধ্যমে )
  • কিছু তৃতীয় পক্ষের সরঞ্জাম যা ইতিমধ্যে আপনার প্রয়োজনীয় কার্যকারিতা সরবরাহ করে

7

আমি সরাসরি এটি করার উপায় আছে বলে মনে করি না। আপনি একটি "অটোমেটার" অ্যাপ্লিকেশন তৈরি করতে পারেন যা আপনি যা যা খুঁজছেন তা কিছু করবে। এটি অটোমেটর স্ট্যাকটি দেখতে কেমন তা দেখায়:

এখানে চিত্র বর্ণনা লিখুন

ফলাফলটিকে অ্যাপ্লিকেশন হিসাবে সংরক্ষণ করুন, তারপরে ফাইন্ডারে ফাইলগুলি নির্বাচন করুন, ডান-ক্লিক করুন এবং "সাথে খুলুন" নির্বাচন করুন তারপরে আপনার অ্যাপ্লিকেশনটি বাছুন। (অ্যাপ্লিকেশন তালিকার নীচে আপনার "অন্য ..." নির্বাচন করার প্রয়োজন হতে পারে))

আপনি এই পদ্ধতির সাথে স্ক্রিপ্টের সাথে ইন্টারঅ্যাক্ট করতে পারবেন না, তবে কিছু শেল স্ক্রিপ্ট সম্পাদন করতে আপনি ফাইলগুলি লুপ করতে পারেন।


আপনি যদি অ্যাপ্লিকেশন আইকনটির উপরে ফাইলগুলি টেনে আনেন এবং এগুলি ফেলে দেন তবে এটি আরও সহজ।
কিমলালুনো

5

পরিষেবাগুলি কীভাবে এই ধরণের জিনিস পরিচালনা করে।

অ্যাপ্লিকেশন মেনু (এই ক্ষেত্রে 'ফাইন্ডার') এর অধীনে (প্রায়শই) সর্বদা একটি Servicesমেনু বিকল্প থাকে যা বর্তমান অ্যাপ্লিকেশন এবং এর বর্তমান অবস্থাতে প্রযোজ্য পরিষেবাগুলি সরবরাহ করবে । সাধারণত রাষ্ট্রটি কী ধরণের বস্তু নির্বাচন করা হয় (পাঠ্য, ফাইল / ফোল্ডার ইত্যাদি)।

এগুলি সক্ষম করা, অক্ষম করতে এবং সিস্টেম পছন্দ প্যানেলে কীবোর্ড শর্টকাটগুলি নির্ধারিত করা যেতে পারে যা কেবলমাত্র এই তিনটির মধ্যেই শেষ বোঝায় Keyboard

কীবোর্ড শর্টকাটগুলি

এমন একটি পরিষেবা তৈরি করতে যা ফাইন্ডারে ফাইল / ফোল্ডারগুলিতে শেল স্ক্রিপ্ট প্রয়োগ করে:

চালু করুন এবং একটি নতুন Serviceধরণের নথি তৈরি করুন।

নতুন পরিষেবা

  • পরিষেবা প্রযোজ্য বস্তুর প্রকার সেট করুন ( files or folders)
  • পরিষেবাটি উপলব্ধ রয়েছে এমন অ্যাপ্লিকেশনটি সেট করুন ( )
    • বিকল্পভাবে একটি Get Selected Finder Itemsপদক্ষেপ আছে।
  • এর একটি ক্রিয়া যুক্ত করুন Run Shell Script
  • আপনি যদি আর্গুমেন্ট বা হিসাবে ইনপুটটি চান তা সিদ্ধান্ত নিন

এটি দেখতে কিছু দেখতে হবে:

উদাহরণ শেল স্ক্রিপ্ট

স্বয়ংক্রিয়ভাবে এটিকে আপনার ~/Library/Servicesফোল্ডারে রাখবে যখন আপনি সংরক্ষণ করবেন যা Application -> Servicesমেনু বা প্রাসঙ্গিক (ডান ক্লিক) মেনু দিয়ে অবিলম্বে এটি উপলব্ধ করবে (প্রায়) ।

পরীক্ষা ফোল্ডার

ফলাফল TextEdit ডকুমেন্ট



2

উপরের উত্তরগুলির ভিত্তিতে, আমি এই জিনিসটি তৈরি করেছি

https://github.com/commonpike/DropShell

মূলত একটি অ্যাপসক্রিপ্ট অ্যাপ্লিকেশন, যা অ্যাপ্লিকেশনটিতে থাকা শেলফিলটিকে আর্গুমেন্ট হিসাবে বাদ দেওয়া ফাইলগুলিতে কল করে। আপনি প্রয়োজন হিসাবে শেল স্ক্রিপ্ট পরিবর্তন করতে পারেন।


2

কমনপাইকটির উত্তরের ভিত্তিতে, আমি একটি অ্যাপলস্ক্রিপ্ট তৈরি করেছি, যা এতে ফেলে দেওয়া সমস্ত ফাইলকে মিলে যাওয়া নামের সাথে একটি শেল স্ক্রিপ্টে পুনঃনির্দেশ করে। অ্যাপলের স্ক্রিপ্টএডিটরের মধ্যে থেকে কেবল অ্যাপ্লিকেশন হিসাবে সংরক্ষণ করুন এবং আপনার স্ক্রিপ্টের সাথে মেলে স্ক্রিপ্ট.এপ হিসাবে নতুন নামকরণ করুন ps https://github.com/PHolker/scriptts/blob/master/DropScript.scpt


1

ম্যাক ওএস এক্স-এ, পছন্দের স্ক্রিপ্টের ভাষা হ'ল অ্যাপ্লিক্রিপ্ট। আপনি একটি বোঁটা তৈরি করতে পারেন (একটি স্ক্রিপ্ট যা কিছু করবে যখন আপনি তার আইকনটির উপর কিছু ফাইল ফেলে দেবেন), স্ক্রিপ্টটি (যা অ্যাপ্লিকেশন হিসাবে সংরক্ষণ করা যেতে পারে) ডেস্কটপের উপরে আইকনটি রেখে এবং আপনি যে ফাইলগুলিতে যেতে চান তা টেনে আনুন এবং ফেলে দিতে পারেন লিপি.

বিকল্প হিসাবে, আপনি ফোল্ডার ক্রিয়া ব্যবহার করতে পারেন। কোনও ফোল্ডারের সাথে একটি স্ক্রিপ্ট অ্যাপসক্রিপ্ট সংযুক্ত করা সম্ভব যা ফোল্ডারের উপরে কিছু ফাইল (বা ডিরেক্টরিগুলি) বাদ দেওয়া হয় তার সবসময় কার্যকর করা হবে।


1

আমি এটিও করতে চাইছিলাম, তবে উপরের সমাধানগুলির বিপরীতে, আমি একটি শেল স্ক্রিপ্টের জন্য উদ্ধৃত পরামিতি তৈরি করতে চেয়েছিলাম। এই অন্যান্য পদ্ধতিগুলি ঠিক আছে, তবে আপনি যখন যা চান তা আসলে এগুলি "জাস্ট কমান্ড-ভি টার্মিনালটিতে" পরামর্শ দেওয়ার মতো pbpaste

আমি আমার স্ক্রিপ্টগুলিতে শেল ফাংশনটি তৈরি করতে চেয়েছিলাম যা প্রতিটি অনুসন্ধানকারীর নির্বাচনের জন্য পরামিতি ফাইলগুলিতে প্রসারিত হয়েছিল। আমি ফিশ শেলটি ব্যবহার করি এবং এটি কিছুটা কাজ করে বলে মনে হচ্ছে:

function selection
    osascript -e "tell application \"Finder\" to set s to the selection as alias list" -e "repeat with f in s" -e "set contents of f to POSIX path of f" -e "end repeat" -e "set AppleScript's text item delimiters to linefeed" -e "s as string"
end

ব্যবহৃত (আবার ফিশ শেল মধ্যে) পছন্দ convert-video (selection)

কোনও বাশ ফাংশনে, | tr '\n' '\0' | xargs -0 printf "%q" {}ওসাস্ক্রিপ্ট কমান্ডের শেষে যেমন আউটপুটটি উদ্ধৃত করা দরকার তা নিশ্চিত নয়।

(দ্রষ্টব্য: অগ্রণী অ্যাপ্লাস্ক্রিপ্ট এবং শেল স্ক্রিপ্টিং সম্পর্কে আমি যা জানি তা গত 2 ঘন্টা আমি পুনরায় শিখেছি এবং আগামীকাল ভুলে যাব)


সম্প্রতি বাশে এটি করার চেষ্টা করা হয়েছিল, ব্যর্থ হয়েছিল, এখানে সুপারইউজার.com / উকশনস / ১১৩৩৯666666 জিজ্ঞাসা করা হয়েছিল , এমন উত্তর পেয়েছে যেগুলি নির্দেশ করে: না, সম্ভব নয়: Bash (আপনি হারাতে পারেন, আমার কাজ ম্যাকের উপরেও মাছের শেলের সাথে স্যুইচ করবেন। দ্রষ্টব্য আমি উপরে ক্রিস জনসন দ্বারা উল্লিখিত টেনে-টু-ফাইন্ডার ট্রিকটি ব্যবহার করি,
পিয়ের হিউস্টন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.