"যা" ছাড়া পাথ একটি ফাইল খুঁজে পাও?


12

আমি (কোনওভাবে) একটি স্ক্রিপ্ট চালাতে সক্ষম:

$ assemble.sh file
... [output]

তবে whichএটি খুঁজে পাচ্ছে না:

$ which assemble.sh
which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:.
  1. এটা কিভাবে সম্ভব?
  2. এই ফাইলটি কোথায় আছে তা আমি কীভাবে খুঁজে পাব?

আমি ব্যাশ ব্যবহার করছি।


কি assemble.shআপনার বর্তমান ডিরেক্টরির মধ্যে?
কিথ

3
সম্ভবত একটি বোবা প্রশ্ন, তবে এটি কি একটি উপনাম (যেমন এসেম্বল করা হয় alias ? আপনি যখন কমান্ডটি টাইপ করেন তখন দেখা যায় ?
জেমস ম্যাকলিয়ড

@ জেমসম্যাকলিড দুর্দান্ত অনুমান! এটি acme.sh ( github.com/Neilpang/acme.sh ) এর ক্ষেত্রে আমার কেস ছিল । ইনস্টল করার পরে, acme.sh ওরফে তৈরি হয়েছিল এবং আমি ভাবলাম যে PATH ভারে না থাকা সত্ত্বেও কীভাবে acme.sh বলা হয়।
rlib

উত্তর:


17

এই আদেশটি ব্যবহার করুন: type assemble.sh

এটা তোলে শাঁস বিভিন্ন কাজ করে এবং শুধুমাত্র প্রথম ফলাফলের দেখায়।


9
বা কেবল type assemble.sh, যা বহনযোগ্য (এবং কেবলমাত্র প্রথম ম্যাচটি দেখায় যেখানে type -aসমস্ত ম্যাচ দেখানোর জন্য একটি ksh / বাশ নির্মাণ)।
গিলস 22'44

6

বা পথ বিভক্ত খুঁজুন, এটি ব্যবহার - প্রথম ম্যাচ সমাধান হওয়া উচিত

find ${PATH//:/ } -maxdepth 1 -name assemble.sh -print -quit

type অবশ্যই আরও সহজ।


2
এটি মোটামুটি কার্যকর। আমি জানতাম না যে আমি sub find
পথটিকে

1
চেষ্টা না কিন্তু আমি অনুমান এই পথের উপাদান মধ্যে ব্যবধান সহ ভাঙ্গতে পারে
nhed

4

আপনি ব্যাশ ব্যবহার করতে পারেন, তবে whichআউটপুটটির বাক্য গঠনটি দেখায় যে আপনি পুরানো whichলেখায় csh ব্যবহার করেছেন । পথ দেখায় আপ প্রথম বন্ধনী দ্বারা উদ্ধৃত, এবং PATH- এ ডিরেক্টরি এন্ট্রি মত আছে /opt/SUNWspro/binএবং /usr/ccs/binযা শুধুমাত্র সোলারিস মধ্যে জানার জন্য। যে সামঞ্জস্যপূর্ণ আছে: সোলারিস csh শেল ব্যবহার করা which

এখানে আমার অনুমান: আপনি বাশের জন্য একটি PATH পেয়েছেন এবং অন্যটি csh এর জন্য। এটি সিস্টেম সমস্যা হতে পারে। আমি প্রত্যাহার, সোলারিস রাখে, / etc / প্রোফাইল এবং জন্য / etc / cshrc সিস্টেম-ব্যাপী পাথ সেটিং এর জন্য ফাইল হিসেবে। এই দুটি সূচনা ফাইল বিভিন্ন শেলের জন্য পৃথক PATH ভেরিয়েবল সেট করতে পারে। ব্যাশের অধীনে "প্রতিধ্বনি $ PATH" করুন এবং দেখুন যে এটি whichকমান্ডটি প্যাথ স্ট্রিং হিসাবে প্রিন্ট করে তার সাথে একমত হয় কিনা ।


4
command -v assemble.sh

তথ্য

-v M প্রকারের অন্তর্নির্মিত অনুরূপ COMMAND এর বিবরণ মুদ্রণ করুন

যদি আপনি পথের একটি পরিবর্তিত সংস্করণ খুঁজে পেতে চান এছাড়াও দরকারী হবেASSEMBLE=$(PATH=/usr/bin:/usr/local/opt/coreutils/libexec/gnubin command -v assemble.sh)
nhed

0

আপনি locate assemble.shফাইলটির অবস্থান সন্ধান করতে ব্যবহার করতে পারেন ।


না, এটি এমন সমস্ত (বিশ্ব-) পঠনযোগ্য ফাইলগুলির অবস্থান দেখায় যার নাম ধারণ করে assemble.sh, যা এখানে অপ্রাসঙ্গিক।
গিলেজ 'SO- স্টপ হচ্ছে মন্দ'

এটি মোটেই অপ্রাসঙ্গিক নয়। এমনকি যদি তার কাছে এই জাতীয় কলযুক্ত একাধিক ফাইল থাকে তবে তাকে তার পছন্দ মতো একটি locateঅবস্থানও দেয়। assemble.shএটি সাধারণ ফাইলের নাম নয়, সুতরাং তিনি সম্ভবত ফাইলটি সহজেই খুঁজে পাবেন (যা ওপি অনুরোধ করে what
নিকো

1
ফলাফল প্রদর্শন করার updatedbআগে আপনাকে কী করতে হবে না locate?
গ্লেন জ্যাকম্যান

1
সাধারণত updatedbএকটি ক্রন কাজ যেমন দৈনন্দিন চালানো হয়, কিন্তু হ্যাঁ, আপনি এটা জোর করে ফাইলটি খুবই সাম্প্রতিক হয় থাকতে পারে।
নিকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.