বাশ: প্রকারের (ব্যাশ বিল্টিন) ব্যবহার কী?


16

আমি বাশ স্ক্রিপ্টের একটি কমান্ড পেয়েছিলাম যেখানে আমি এটি পেয়েছিলাম:

find /var/log/abcd -type f

উপরের কমান্ডটি লগ ফাইলগুলি পরিষ্কার করার প্রসঙ্গে ছিল। আমি জানি কি findকরে।

দেখার পরে -type f, আমি এটির জন্য ম্যানুয়াল পৃষ্ঠাটি দেখেছি । আমি এটি BASH_BUILTINS এর ম্যান পেজে দেখতে পেয়েছি (1)

typeকমান্ডের অধীনে -f পতাকার বর্ণনা : -

The -f option suppresses shell function lookup, as with the command builtin.

আমার প্রশ্নগুলি নিম্নলিখিত:

  1. এর ব্যবহার কী type?
  2. -fপতাকার তাত্পর্য কী ?
  3. কমান্ড typeদিয়ে কি ব্যবহার করা যায় find?

[Edit]: - পরে সব মন্তব্য পড়তে থাকার ও উত্তর এখন পর্যন্ত, আমি আমার অপব্যাখ্যা জন্য কারণ উল্লেখ করতে চাই -type option in command findবনাম type command। এই সমস্ত ঘটেছে কারণ আমি ধরেই নিয়েছিলাম এবং আজ অবধি কেবল সংক্ষিপ্ত বিকল্পগুলি ( findকমান্ডের ক্ষেত্রে টেস্টগুলি ) একক বিয়োগ চিহ্ন সহ '-' উদাহরণস্বরূপ দেখা গেছে ls -l। বেশিরভাগ সময় আমি ডাবল বিয়োগ চিহ্ন '-' উদাহরণ সহ দীর্ঘ বিকল্পগুলি দেখেছি , উদাহরণস্বরূপ ls --version,।


1
typeBuiltin কমান্ড দ্বারা ব্যবহৃত হয় না find-typeবিকল্প findঅন্য কিছু আছে। দেখুন help typeএবং man findআপনার উত্তর পেতে।

1
এই নির্দিষ্ট ভুল ব্যাখ্যাটি খুব সুনির্দিষ্ট এবং সম্ভাব্যতা হিসাবে অন্যদের একটি প্রশ্ন হিসাবে সহায়তা করবে
এ্যান্থন

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

দয়া করে আপনার প্রশ্নের শিরোনাম পুনর্বিবেচনা বিবেচনা করুন, কারণ আপনার বর্তমান শিরোনাম এমন লোকদের যারা সত্যিকারের বিল্ট-ইন 'টাইপ' ব্যবহারের সন্ধান করছে সঠিক উত্তর পেতে বাধা
দিচ্ছে

উত্তর:


21

এই ক্ষেত্রে typeঅন্তর্নির্মিত ব্যাশের সাথে কোনও সম্পর্ক নেই type, তবে এরপরে আরও।

"টাইপ" সম্পর্কে একটি সামান্য

বেস বিল্ট-ইন typeকমান্ড আপনাকে কমান্ড সম্পর্কে তথ্য দেয়। এভাবে:

$ type type
type is a shell builtin

বাক্য গঠনটি হ'ল:

type [-tap] [name ...]
  • -t: প্রিন্ট কেবল টাইপ, যদি পাওয়া যায়
  • -a: অন্তর্নির্মিত এবং অন্যান্য উভয়ই কমান্ডের সমস্ত উপস্থিতি মুদ্রণ করুন।
  • -p: কল টু কমান্ডে চালিত হওয়া ডিস্ক ফাইলটি প্রিন্ট করুন বা কিছুই নয় nothing

যদি আমরা তাকান time, killএবং catউদাহরণ হিসাবে:

$ type time kill cat
time is a shell keyword
kill is a shell builtin
cat is /bin/cat

$ type -t time kill cat
keyword
builtin
file

$ type -a time kill cat
time is a shell keyword
time is /usr/bin/time
kill is a shell builtin
kill is /bin/kill
cat is /bin/cat

$ type -ta time kill cat
keyword
file
builtin
file
file

এখন, এটি উল্লেখ করে যে আপনি যদি ব্যাশ শেল এবং টাইপ করে থাকেন time some_cmdতবে ব্যাশ বিল্টিন timeব্যবহার করা হবে। সিস্টেমটি ব্যবহার করতে timeআপনি করতে পারেন /usr/bin/time some_cmd

সিস্টেমটি, এবং অন্তর্নির্মিত নয়, কমান্ডটি ব্যবহার করা হয় তা নিশ্চিত করার জন্য প্রায়ই একটি উপায় ব্যবহৃত হয় which

tt=$(which time)

এবং তারপরে $ttসিস্টেম কল করার জন্য ব্যবহার করুন time


প্রশ্নে কমান্ড

এই ক্ষেত্রে -typeকমান্ডের একটি বিকল্প find। বিকল্পটি সত্তার ধরণ নির্দিষ্ট করে যার একটি যুক্তি গ্রহণ করে। উদাহরণ

find . -type f  # File
find . -type d  # Directory

আরও আছে, man findবাকি জন্য পরীক্ষা করুন।

সুনির্দিষ্ট বিকল্পটি সন্ধান করতে আপনি করতে পারেন (মানুষের মধ্যে):

/ ^ \ গুলি * টাইপEnter

তারপর ব্যবহার nজন্য পরবর্তী আপনি তা খুঁজে পেতে পর্যন্ত।


শেল কমান্ড সম্পর্কে একটু

এটি কিছুটা ব্যক্তিগত ব্যাখ্যা of

এই নির্দিষ্ট ক্ষেত্রে উল্লেখযোগ্য কিছু বিষয় হ'ল কমান্ড, বিকল্প, আর্গুমেন্ট এবং পাইপ।

এটি কিছুটা আলগাভাবে ব্যবহৃত হয়, তবে আমার শব্দভাণ্ডারে আমরা সংক্ষেপে লিখেছি:

  • কমান্ড: একটি প্রোগ্রাম বা অন্তর্নির্মিত
  • পরামিতি: কমান্ড শব্দের পরে একটি সত্তা।
  • বিকল্প: একটি al চ্ছিক পরামিতি।
  • যুক্তি: একটি প্রয়োজনীয় প্যারামিটার।

কমান্ডের নির্দিষ্টকরণে স্কোয়ার ব্র্যাকেটগুলি বিকল্পগুলি নির্দিষ্ট করতে ব্যবহৃত হয় এবং optionচ্ছিকভাবে কম / তত বেশি হলে আর্গুমেন্ট নির্দিষ্ট করতে ব্যবহৃত হয়। এভাবে:

foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...

দেয় -a -bএবং -sযেমন ঐচ্ছিক প্যারামিটার এবং fileএকটি এক প্রয়োজন। -tisচ্ছিক, তবে নির্দিষ্ট করা হলে প্রয়োজনীয় যুক্তি লাগে bar। বিন্দুগুলি উপস্থাপন করে যে এটি বেশ কয়েকটি ফাইল নিতে পারে।

এটি কোনও সঠিক স্পেসিফিকেশন নয়, এবং প্রায়শই manবা helpনিশ্চিত হওয়ার প্রয়োজন হয়।

আর্গুমেন্ট অপশন এবং ইনপুট অবস্থান নির্ধারণ প্রায়শই মিশ্রিত করা যেতে পারে, তবে কিছু অবস্থান আর্গুমেন্টের মিশ্র অবস্থান পরিচালনা করে না বলে সাধারণত অবস্থান ভিত্তিক পদ্ধতির কাছে রাখা ভাল। উদাহরণ হিসাবে:

chmod -R nick 722 foo
chmod nick 722 foo -R

উভয়ই কিছু সিস্টেমে কাজ করে, যদিও পরবর্তীটি অন্যটিতে না হয়।


আপনার সঠিক কমান্ডে সমস্ত প্যারামিটারের অন্তর্ভুক্ত find- সুতরাং আপনি যদি কোনও সম্পত্তি সম্পর্কে অবাক হন man findতবে দেখার উপযুক্ত জায়গা। শেল ইত্যাদির জন্য আপনার ম্যান পেজগুলি দেখার প্রয়োজন যেমন হতে পারে:

find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...

-execএকটি বিশেষ এক কোথায় -exec some_command {} \;সকল প্যারামিটার দেওয়া হয় find, কিন্তু some_command {} \;অংশ মধ্যে প্রসারিত হয় findথেকে some_command string_of_found_entity


আরও

  • মূল্য উদ্ধৃতি
  • সম্প্রসারণ
  • কমান্ড প্রতিস্থাপন
  • এবং আরো অনেক কিছু

আপনি এটি দরকারী মনে হতে পারে


খুবই তথ্যবহুল.
ফ্রেড্রিক গৌস

8

আপনি ভিতরে তাকান man find, না help typeবা না man bashtypeআপনার findকোন ধরণের ফাইলের প্রয়োজন তা নির্দিষ্ট করে দেবে:

   -type c
          File is of type c:

          b      block (buffered) special

          c      character (unbuffered) special

          d      directory

          p      named pipe (FIFO)

          f      regular file

          l      symbolic link; this is never true if the -L option or the
                 -follow option is in effect, unless the symbolic link  is
                 broken.  If you want to search for symbolic links when -L
                 is in effect, use -xtype.

          s      socket

          D      door (Solaris)

এবং বিল্টিন typeসম্পূর্ণ আলাদা জিনিস এবং এটি ভিতরে ব্যবহার করা হয় না find


0

আপনি ভুল ম্যানুয়াল পৃষ্ঠায় সন্ধান করেছেন, এটি type -fকমান্ড নয় বরং find -type fবিকল্পটি যা একেবারেই আলাদা, findসঠিক ব্যাখ্যার জন্য ম্যানুয়ালটি দেখুন ।


0

-type fকেবলমাত্র এফ ফাইলের প্রিন্ট করতে বলে যেমন প্লেইন ফাইল, ডিরেক্টরি নয়, প্রতীকী লিঙ্ক নয় ডিভাইস ফাইল নয়। man findতারপরে -fবিকল্পের জন্য অনুসন্ধান করুন ।


0

এটি আপনি যা খুঁজছেন তা সঠিক ম্যানুয়াল পৃষ্ঠা নয়। আপনি ব্যবহার করা উচিত

man find

যে আপনি যে সঙ্গে বলতে হবে বিধেয় নির্বাচন শুধুমাত্র নিয়মিত ফাইল।-type f-type

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.