Sh- এ 'Find' এর '-Pune' অপশনটি কীভাবে ব্যবহার করবেন?


219

আমি প্রদত্ত উদাহরণটি পুরোপুরি বুঝতে পারি না man find, কেউ কি আমাকে কিছু উদাহরণ এবং ব্যাখ্যা দিতে পারেন? আমি কি এতে নিয়মিত ভাবটি একত্রিত করতে পারি?


আরও বিস্তারিত প্রশ্নটি এরকম:

একটি শেল স্ক্রিপ্ট লিখুন changeall, যার মতো ইন্টারফেস রয়েছে changeall [-r|-R] "string1" "string2"। এটা তোলে একজন প্রত্যয় সঙ্গে সব ফাইল পাবেন .h, .C, .cc, অথবা .cppএবং এর সমস্ত সংঘটন পরিবর্তন string1করতে string2-rকেবলমাত্র বর্তমান ডিয়ারে বা সাবডিরের অন্তর্ভুক্ত থাকার জন্য বিকল্প।

বিঃদ্রঃ:

  1. পুনরাবৃত্তিযোগ্য মামলার lsজন্য অনুমোদিত নয়, আমরা কেবল ব্যবহার করতে পারি findএবং sed
  2. আমি চেষ্টা করেছি find -depthকিন্তু এটি সমর্থিত হয়নি। এজন্য আমি ভাবছিলাম যে -pruneসাহায্য করতে পারি কিনা , তবে এর উদাহরণটি বুঝতে পারি নি man find

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

উত্তর:


438

আমি -pruneযে বিষয়টি সম্পর্কে বিভ্রান্তিকর বিষয়টি পেয়েছি তা হ'ল এটি একটি ক্রিয়া (যেমন -print), পরীক্ষা নয় (যেমন -name)। এটি "করণীয়" তালিকায় পরিবর্তন করে তবে সর্বদা সত্য হয়

ব্যবহারের জন্য সাধারণ প্যাটার্নটি -pruneহ'ল:

find [path] [conditions to prune] -prune -o \
            [your usual conditions] [actions to perform]

আপনি প্রায় সবসময় -oতাত্ক্ষণিকভাবেই (যৌক্তিক ওআর) চান -prune, কারণ পরীক্ষার প্রথম অংশটি (আপ এবং অন্তর্ভুক্ত -prune) আপনি যে জিনিসটি চান তার জন্য মিথ্যা ফিরিয়ে দেবে (যেমন: আপনি যে জিনিসটি ছাঁটাই করতে চান না )।

এখানে একটি উদাহরণ:

find . -name .snapshot -prune -o -name '*.foo' -print

এটি "* .ফু" ফাইলগুলি খুঁজে পাবে যা ".স্ন্যাপশট" ডিরেক্টরিগুলির অধীন নয়। এই উদাহরণে, -name .snapshotতৈরি করে [conditions to prune]এবং -name '*.foo' -printহয় [your usual conditions]এবং হয় [actions to perform]

গুরুত্বপূর্ণ নোট :

  1. যদি আপনি যা করতে চান তা হ'ল ফলগুলি মুদ্রণ করা আপনি -printক্রিয়াটি ছাড়তে অভ্যস্ত হতে পারেন । ব্যবহার করার সময় আপনি সাধারণত এটি করতে চান না-prune

    অনুসন্ধানের ডিফল্ট আচরণটি হ'ল "এবং" ক্রিয়াকলাপের সাথে সম্পূর্ণ এক্সপ্রেশনটি -printযদি -pruneশেষ (ব্যঙ্গাত্মকভাবে) ব্যতীত অন্য কোনও ক্রিয়া না থাকে । এর অর্থ এই লেখা:

    find . -name .snapshot -prune -o -name '*.foo'              # DON'T DO THIS

    এটি লেখার সমতুল্য:

    find . \( -name .snapshot -prune -o -name '*.foo' \) -print # DON'T DO THIS

    যার অর্থ এটি যে ডিরেক্টরিটি আপনি ছাঁটাই করছেন তার নামটিও মুদ্রণ করবে, যা সাধারণত আপনি চান না। পরিবর্তে -printকর্মটি স্পষ্টভাবে উল্লেখ করা ভাল এটি যদি আপনি চান যা:

    find . -name .snapshot -prune -o -name '*.foo' -print       # DO THIS
  2. যদি আপনার "স্বাভাবিক অবস্থা" ফাইলগুলির সাথে মিলে যায় যা আপনার ছাঁটাইয়ের শর্তটিও মেলে, তবে সেই ফাইলগুলি আউটপুটে অন্তর্ভুক্ত করা হবে না । এটি ঠিক করার উপায় হ'ল -type dআপনার ছাঁটাই শর্তে একটি শিকারী যুক্ত করা।

    উদাহরণস্বরূপ, ধরুন আমরা যে ডিরেক্টরিটি দিয়ে শুরু করেছি .git( সেগুলি অবশ্যই কিছুটা স্বীকৃত - সাধারণত আপনাকে কেবল ঠিক নামটির জিনিসটি সরিয়ে ফেলতে হবে .git), তবে এর মতো ফাইলগুলি সহ সমস্ত ফাইল দেখতে চেয়েছিল .gitignore। আপনি এটি চেষ্টা করতে পারেন:

    find . -name '.git*' -prune -o -type f -print               # DON'T DO THIS

    এটি আউটপুট অন্তর্ভুক্ত করবে না.gitignore । এখানে স্থির সংস্করণটি রয়েছে:

    find . -name '.git*' -type d -prune -o -type f -print       # DO THIS

অতিরিক্ত টিপ: আপনি যদি GNU সংস্করণ ব্যবহার করেন findতবে এর টেক্সিনফোর পৃষ্ঠাটির ম্যানপেজের findচেয়ে আরও বিশদ বিশদ রয়েছে (যেমনটি বেশিরভাগ জিএনইউ ইউটিলিটিগুলির ক্ষেত্রে সত্য)।


6
এটি আপনার পাঠ্যে 100% সুস্পষ্ট নয় (তবে আপনি কেবল '* .foo' মুদ্রণ হিসাবে এটি দ্বন্দ্ব করে না) তবে-অংশ অংশটি ".স্নাপশট" নামে কিছু (কেবল ডিরেক্টরি নয়) প্রিন্টও করবে না। উদাহরণস্বরূপ, -pruneকেবল ডিরেক্টরিতে কাজ করে না (তবে ডিরেক্টরিগুলির জন্য এটি সেই শর্তের সাথে মেলে এমন ডিরেক্টরিতে প্রবেশ করাও আটকাবে না, অর্থাত্ এখানে এটির সাথে মিলে যাওয়া ডায়ারগুলি রয়েছে -name .snapshot)।
অলিভিয়ার ডুলাক

12
এবং সুন্দরভাবে করা ব্যাখ্যা (এবং বিশেষত গুরুত্বপূর্ণ নোট) এর জন্য আপনার জন্য +1। আপনার এটি অনুসন্ধানকারী বিকাশকারীদের কাছে জমা দিতে হবে (যেহেতু ম্যান পেজটি সাধারণ মানুষের জন্য "ছাঁটাই" ব্যাখ্যা করে না it এটি বের করার জন্য আমাকে অনেক চেষ্টা করেছিল এবং আপনি আমাদের সম্পর্কে সতর্ক করেছিলেন এমন পার্শ্ব প্রতিক্রিয়া আমি দেখতে পাইনি)
অলিভিয়ার ডুলাক

2
@ অলিভিয়ারডুলাক আপনি রাখতে চান এমন সম্ভাব্য ফাইলগুলি সরিয়ে ফেলার বিষয়ে এটি একটি খুব ভাল বিষয়। আমি এটি পরিষ্কার করতে উত্তর আপডেট করেছি। আসলে এটি -pruneনিজেই নয় যে কারণে এটি ঘটে। সমস্যাটি হ'ল অপারেটরটি "শর্ট সার্কিট" এবং এর চেয়ে কম এবং এর চেয়ে কম অগ্রাধিকার রয়েছে। শেষ ফলাফলটি হ'ল যদি ডাকা একটি ফাইল .snapshotমুখোমুখি হয় তবে এটি প্রথমটির সাথে মিলবে -name, -pruneতারপরে কিছুই করবে না (তবে সত্য প্রত্যাবর্তন করবে) এবং তারপরে বা বাম-যুক্তিটি সত্য হওয়ার কারণে বা সত্যটি প্রত্যাবর্তন করবে। ক্রিয়া (যেমন -print:) এটি এর দ্বিতীয় যুক্তির অংশ, তাই এটি কার্যকর করার কোনও সুযোগ কখনও পায় না।
লরেন্স গনসাল্ভেস

3
+1 টি পরিশেষে খুঁজে পাওয়া যায় নি কেন আমি প্রয়োজন -printশেষে, আমি এখন স্টপ যোগ করতে পারেন \! -path <pattern>ছাড়াও-prune
মন্দ চলক

6
মনে রাখবেন যে "-o" "-অর" এর জন্য শর্টহ্যান্ড, যা (পসিক্স-সম্মতিযুক্ত নয়) আরও পরিষ্কারভাবে পড়ে reads
yoyo

27

সাধারণত লিনাক্সে আমরা স্থানীয়ভাবে কাজ করি এবং বাম থেকে ডানে আমাদের যেভাবে মনে হয়।
সুতরাং আপনি গিয়ে যা লিখছেন তা প্রথমে লিখবেন:

find / -name "*.php"

তারপরে আপনি সম্ভবত এন্টার টিপুন এবং বুঝতে পারবেন যে আপনি যে ডিরেক্টরিগুলি করতে চান না সেগুলি থেকে আপনি প্রচুর ফাইল পেয়ে যাচ্ছেন। আপনার মাউন্ট ড্রাইভ অনুসন্ধান এড়ানোর জন্য আসুন / মিডিয়া বাদ দিন।
আপনার এখন আগের কমান্ডের জন্য কেবল নিম্নলিখিতটি সংযোজন করা উচিত:

-print -o -path '/media' -prune

সুতরাং চূড়ান্ত আদেশ হ'ল:

find / -name "*.php" -print -o -path '/media' -prune

............... | <--- অন্তর্ভুক্ত করুন ---> | .................... | << -------- বাদ দিন ---------> |

আমি মনে করি এই কাঠামোটি অনেক সহজ এবং সঠিক পদ্ধতির সাথে সংযুক্ত


3
আমি এটি দক্ষ হওয়ার প্রত্যাশা করতাম না - আমি ভাবতাম যে এটি ছাঁটাইয়ের আগে প্রথমে বাম ধারাটি মূল্যায়ন করবে, তবে আমার অবাক করার জন্য একটি দ্রুত পরীক্ষা মনে হয় যে প্রথমে findএই -pruneধারাটি প্রক্রিয়া করার জন্য যথেষ্ট চৌকস । হুঁ, মজার
artfulrobot

জিএনইউ ব্যবহারের প্রায় এক দশকে এটি আমি কখনই বিবেচনা করি নি! এটার জন্য ধন্যবাদ! এটি অবশ্যই -pruneএখন থেকে আমার যেভাবে ভাববে তার পরিবর্তন করবে ।
ফিলিপ আলভারেজ

3
@artfulrobot এটি সত্যিই প্রথমে প্রক্রিয়া করছে? আমি ভেবেছিলাম এটি প্রবেশ করছে /media, এটি কল করা হয়নি তা লক্ষ্য করে *.phpএবং তারপরে এটি বর্তমানে রয়েছে কিনা তা পরীক্ষা করে দেখুন /mediaএবং এটি সেইজন্য পুরো সাবট্রিটি এড়িয়ে চলেছেন। এটি এখনও বাম থেকে ডানে রয়েছে, যতক্ষণ না উভয় চেক ওভারল্যাপ না হয় ততক্ষণ এটি কোনও তাত্পর্যপূর্ণ করে না।
পিএইচকে

26

সাবধানতা অবধি- ডিরেক্টরি কোনও ডিরেক্টরিতে নামা বাধা দেয় না কেউ কেউ বলেছেন। এটি যে ডিরেক্টরিগুলিতে প্রয়োগ করা হয় তার সাথে মেলে এমন ডিরেক্টরিতে নামতে বাধা দেয়। সম্ভবত কিছু উদাহরণগুলি সহায়তা করবে (একটি রেজেক্স উদাহরণের নীচে দেখুন)। এটি এত দীর্ঘ হওয়ার জন্য দুঃখিত

$ find . -printf "%y %p\n"    # print the file type the first time FYI
d .
f ./test
d ./dir1
d ./dir1/test
f ./dir1/test/file
f ./dir1/test/test
d ./dir1/scripts
f ./dir1/scripts/myscript.pl
f ./dir1/scripts/myscript.sh
f ./dir1/scripts/myscript.py
d ./dir2
d ./dir2/test
f ./dir2/test/file
f ./dir2/test/myscript.pl
f ./dir2/test/myscript.sh

$ find . -name test
./test
./dir1/test
./dir1/test/test
./dir2/test

$ find . -prune
.

$ find . -name test -prune
./test
./dir1/test
./dir2/test

$ find . -name test -prune -o -print
.
./dir1
./dir1/scripts
./dir1/scripts/myscript.pl
./dir1/scripts/myscript.sh
./dir1/scripts/myscript.py
./dir2

$ find . -regex ".*/my.*p.$"
./dir1/scripts/myscript.pl
./dir1/scripts/myscript.py
./dir2/test/myscript.pl

$ find . -name test -prune -regex ".*/my.*p.$"
(no results)

$ find . -name test -prune -o -regex ".*/my.*p.$"
./test
./dir1/test
./dir1/scripts/myscript.pl
./dir1/scripts/myscript.py
./dir2/test

$ find . -regex ".*/my.*p.$" -a -not -regex ".*test.*"
./dir1/scripts/myscript.pl
./dir1/scripts/myscript.py

$ find . -not -regex ".*test.*"                   .
./dir1
./dir1/scripts
./dir1/scripts/myscript.pl
./dir1/scripts/myscript.sh
./dir1/scripts/myscript.py
./dir2

তাহলে আপনি "./dir1/scripts/test স্পর্শ করুন" (অর্থাত, একটি "টেস্ট" ফাইল আছে, এবং Dir, যে subdir আউট মুদ্রিত), এটি দ্বারা printd হবে না find . -name test -prune -o -print: IOW, -pruneএমন একটি ক্রিয়া হয় ফাইলগুলিতে কাজ করে
অলিভিয়ার ডুলাক

10

অন্যান্য উত্তরে প্রদত্ত পরামর্শে যুক্ত করা (আমার কাছে উত্তরগুলি তৈরির কোনও প্রতিনিধি নেই) ...

-pruneঅন্যান্য অভিব্যক্তির সাথে একত্রিত হওয়ার সময় , অন্যান্য অভিব্যক্তি ব্যবহৃত হয় তার উপর নির্ভর করে আচরণে একটি সূক্ষ্ম পার্থক্য রয়েছে।

@ লরেন্স গনসাল্ভসের উদাহরণে "* .ফু" ফাইলগুলি পাওয়া যাবে যা ".স্ন্যাপশট" ডিরেক্টরিগুলির অধীন নয়: -

find . -name .snapshot -prune -o -name '*.foo' -print

যাইহোক, এই সামান্য ভিন্ন শর্ট-হ্যান্ড সম্ভবত অজান্তেই .snapshotডিরেক্টরিটি (এবং কোনও নেস্টেড .স্ন্যাপশট ডিরেক্টরিগুলি) তালিকাভুক্ত করবে: -

find . -name .snapshot -prune -o -name '*.foo'

কারণটি (আমার সিস্টেমে ম্যানপেজ অনুযায়ী): -

যদি প্রদত্ত এক্সপ্রেশনটিতে কোনও প্রাইমারী-এক্সেক, -লস, -ক, বা -প্রিন্ট না থাকে তবে প্রদত্ত এক্সপ্রেশনটি কার্যকরভাবে প্রতিস্থাপন করে:

(প্রদত্ত_প্রকাশ) -প্রিন্ট

অর্থাৎ দ্বিতীয় উদাহরণটি নীচের প্রবেশের সমতুল্য, যার দ্বারা শর্তাদির গোষ্ঠীকরণটি সংশোধন করা হবে: -

find . \( -name .snapshot -prune -o -name '*.foo' \) -print

এটি কমপক্ষে সোলারিস ৫.১০ এ দেখা গেছে। প্রায় 10 বছর ধরে * নিক্সের বিভিন্ন স্বাদ ব্যবহার করার পরে, আমি সম্প্রতি সম্প্রতি এর কারণ অনুসন্ধান করেছি।


-pruneসাথে এবং ব্যবহার ছাড়া পার্থক্য মনোযোগ কল করার জন্য আপনাকে ধন্যবাদ -print!
এমসিডাব্লু

3

প্রুন কোনও ডিরেক্টরি স্যুইচ এ পুনরাবৃত্তি হয় না।

ম্যান পেজ থেকে

যদি -পদে না দেওয়া হয়, সত্য; যদি ফাইলটি ডিরেক্টরি হয় তবে এটিতে নামবেন না। যদি-দেওয়া হয়, মিথ্যা; কোন প্রভাব নেই.

মূলত এটি কোনও উপ ডিরেক্টরিতে পড়ে না।

এই উদাহরণটি ধরুন:

আপনার নিম্নলিখিত ডিরেক্টরি রয়েছে have

  • / হোম / test2 |
  • / হোম / test2 | / test2 |

আপনি যদি চালান find -name test2:

এটি উভয় ডিরেক্টরি ফেরত দেবে

আপনি যদি চালান find -name test2 -prune:

এটি কেবল / হোম / টেস্ট 2 ফেরত আসবে কারণ এটি / হোম / টেস্ট 2-এ / হোম / টেস্ট 2 / টেস্ট 2 সন্ধানের জন্য নামবে না


১০০% সত্য নয়: এটি "শর্তের সাথে মিল রেখে ছাঁটাই করা হয়, এবং এটি যদি ডিরেক্টরি হয় তবে এটি করণীয় তালিকার বাইরে নিয়ে যান, অর্থাত্ এটিও প্রবেশ করবেন না"। -প্রণ ফাইলগুলিতেও কাজ করে।
অলিভিয়ার ডুলাক

2

আমি এতে কোনও বিশেষজ্ঞ নই (এবং এই পৃষ্ঠাটি http://mywiki.wooledge.org/UsingFind এর সাথে খুব সহায়ক ছিল )

কেবল লক্ষ্য করা -pathহল এমন এক পথের জন্য যা পুরোপুরি স্ট্রিং / পাথের সাথে মেলে যা ঠিক পরে আসেfind ( .এইগুলির উদাহরণগুলিতে) যেখানে -nameসমস্ত বেসনামের সাথে মেলে।

find . -path ./.git  -prune -o -name file  -print

আপনার বর্তমান ডিরেক্টরিতে .git ডিরেক্টরিটি অবরুদ্ধ করে ( আপনার সন্ধানের ক্ষেত্রে . )

find . -name .git  -prune -o -name file  -print

সমস্ত .git উপ-ডিরেক্টরিগুলি পুনরাবৃত্তভাবে অবরুদ্ধ করে।

নোটটি ./ অত্যন্ত গুরুত্বপূর্ণ !! -pathঅ্যাঙ্কার্ড পাথের সাথে অবশ্যই কিছু মিলিয়ে যেতে হবে . বা যা কিছু আসে ঠিক তার পরে যদি আপনি এটির সাথে ম্যাচগুলি খুঁজে পান ("অন্যদিকে বা ' -o') সম্ভবত সেখানে ছাঁটাই হচ্ছে না! আমি নির্বাকভাবে এ সম্পর্কে অসচেতন ছিলাম এবং আপনি যখন আমাকে একই বেসনামের সাথে সমস্ত উপ-ডিরেক্টরিকে ছাঁটাই করতে চান না তখন এটি খুব ভাল হয় - প্যাট ব্যবহার করার বিষয়টি আমাকে রাখে: ডি


নোট করুন যদি আপনার কাজটি বলছে find bla/তবে আপনার দরকার হবে পথের bla/.git (অথবা আপনি যদি এর *পরিবর্তে সামনের দিকে কিছুটা ধরিয়ে দেন তবে এটি আরও
নামটির

1

দির নিজেই সমস্ত কিছু দেখান তবে এটির দীর্ঘ বিরক্তিকর সামগ্রী নয়:

find . -print -name dir -prune

0

আপনি যদি এখানে সমস্ত ভাল উত্তর পড়েন তবে আমার বোঝার বিষয়টি হ'ল নিম্নলিখিত সকলের একই ফলাফল:

find . -path ./dir1\*  -prune -o -print

find . -path ./dir1  -prune -o -print

find . -path ./dir1\*  -o -print
#look no prune at all!

তবে শেষটিটি অনেক বেশি সময় নিতে পারে কারণ এটি এখনও dir1 এ সমস্ত কিছু অনুসন্ধান করে। আমি অনুমান করি যে আসল প্রশ্নটি -orআসলে অযাচিত ফলাফলগুলি কীভাবে সন্ধান না করা যায়।

সুতরাং আমার ধারণা ছাঁটাই মানে অতীতের ম্যাচগুলিকে শালীন করা নয়, তবে এটি সম্পন্ন হিসাবে চিহ্নিত করুন ...

http://www.gnu.org/software/findutils/manual/html_mono/find.html "তবে এটি '-প্রিন' ক্রিয়াটির প্রভাবের কারণে নয় (যা কেবল আরও উত্থানের প্রতিরোধ করে, এটি নিশ্চিত করে না পরিবর্তে, এই প্রভাবটি '-o' ব্যবহারের কারণে হয় Since "বা" শর্তের বাম দিকটি ./src/emacs এর জন্য সফল হয়েছে, তাই ডান- এই নির্দিষ্ট ফাইলের জন্য হ্যান্ড-সাইড ('-প্রিন্ট') মোটেই। "


0

findফাইলগুলির একটি তালিকা তৈরি করে। এটি আপনার প্রত্যেককে সরবরাহ করা সেই প্রাকটিক প্রয়োগ করে এবং যা পাস করে তাদের ফিরিয়ে দেয়।

-pruneফলাফল থেকে বাদ দেওয়া মানে এই ধারণাটি আমার জন্য সত্যিই বিভ্রান্তিকর ছিল। আপনি ছাঁটাই ছাড়াই কোনও ফাইল বাদ দিতে পারেন:

find -name 'bad_guy' -o -name 'good_guy' -print  // good_guy

সমস্ত -pruneকিছুই অনুসন্ধানের আচরণকে পরিবর্তন করে। যদি বর্তমান ম্যাচটি ডিরেক্টরি হয় তবে এটি "আরে find, সেই ফাইলটি আপনি সবে মিলেছে, এতে প্রবেশ করবেন না" । এটি অনুসন্ধানের জন্য ফাইলের তালিকা থেকে কেবল সেই গাছটিকে (তবে ফাইলটি নয়) সরিয়ে দেয়।

এটি নামকরণ করা উচিত -dont-descend


0

বেশ কয়েকটি উত্তর আছে; তাদের মধ্যে কিছুটা অনেক বেশি তত্ত্ব-ভারী। আমি একবার কেন ছাঁটাই করার দরকার রেখে দেব তাই সম্ভবত প্রথম / উদাহরণ ধরণের ব্যাখ্যা কারও পক্ষে কার্যকর হবে :)

সমস্যা

আমার প্রায় 20 টি নোড ডিরেক্টরি সহ একটি ফোল্ডার ছিল, যার প্রত্যেকটির node_modulesডিরেক্টরি প্রত্যাশা অনুযায়ী রয়েছে।

আপনি যখন কোনও প্রকল্পে প্রবেশ করেন, আপনি প্রতিটি দেখতে পাবেন ../node_modules/module। তবে আপনি জানেন কীভাবে তা হয়। প্রায় প্রতিটি মডিউলটির নির্ভরতা থাকে, তাই আপনি যা দেখছেন তা আরও পছন্দprojectN/node_modules/moduleX/node_modules/moduleZ...

এর নির্ভরতার নির্ভরতার সাথে তালিকার সাথে ডুবে যেতে চাইনি ...

জেনে -d n/ / জানা -depth n, এটি আমাকে সাহায্য করবে না, যেহেতু প্রতিটি প্রকল্পের প্রধান / প্রথম নোড_মডিউলগুলি ডিরেক্টরিটি আমার চেয়ে আলাদা গভীরতায় ছিল, যেমন:

Projects/MysuperProjectName/project/node_modules/...
Projects/Whatshisname/version3/project/node_modules/...
Projects/project/node_modules/...
Projects/MysuperProjectName/testProject/november2015Copy/project/node_modules/...
[...]

আমি কীভাবে প্রথমটিতে শেষ হওয়া পাথের একটি তালিকা পেতে পারি node_modulesএবং এটি পেতে পরবর্তী প্রকল্পে যেতে পারি?

প্রবেশ করান -prune

আপনি যুক্ত করার সময় -prune, আপনার এখনও একটি স্ট্যান্ডার্ড পুনরাবৃত্ত অনুসন্ধান হবে। প্রতিটি "পথ" বিশ্লেষণ করা হয়, এবং প্রতিটি অনুসন্ধান থুতু হয়ে যায় এবং findএকটি ভাল চ্যাপের মতো খনন করতে থাকে। তবে আমি যা চাইছিলাম না তার জন্য এটি খনন করা node_modules

সুতরাং, পার্থক্য হল যে ঐ বিভিন্ন পাথ কোন হল -pruneহবে findযখন এটি আপনার আইটেমের খুঁজে পেয়েছে আরও নিচে সেই বিশেষ এভিনিউ খনন থামাতে। আমার ক্ষেত্রে, node_modulesফোল্ডার।

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