কমান্ড লাইন ব্যবহার করে নির্দিষ্ট পাথ থেকে পুনরাবৃত্তভাবে নোড_মডিউল ফোল্ডার মুছুন


92

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

সুতরাং, কমান্ড লাইন ইন্টারফেসটি ব্যবহার করে নির্দিষ্ট নথ থেকে পুনরাবৃত্তভাবে সমস্ত নোড_মডিউল ফোল্ডারগুলি মুছতে আমার একটি সমাধান দরকার। যে কোনও পরামর্শ / সহায়তা অত্যন্ত প্রশংসনীয়।

উত্তর:


225

মুছে ফেলার জন্য ডিরেক্টরিগুলির একটি তালিকা মুদ্রণ করুন:

find . -name 'node_modules' -type d -prune

বর্তমান কার্যকারী ডিরেক্টরি থেকে ডিরেক্টরি মুছুন:

find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +

পর্যায়ক্রমে মুছে ফেলার জন্য আপনি ট্র্যাস ( brew install trash) ব্যবহার করতে পারেন :

find . -name node_modules -type d -prune -exec trash {} +

26
-pruneএকটি গুরুত্বপূর্ণ অপ্টিমাইজেশন। এটি node_moduleডিরেক্টরিতে পুনরাবৃত্তি না করার ক্ষেত্রে (নেস্টেড নোড_মডিউলগুলি সন্ধান করার জন্য)
rzymek

4
একটি প্রকল্পের জন্য, আমি /node_modules/gulp-server-livereload/node_modules: Directory not emptyপ্রচুর "অভ্যন্তরীণ" নোড_মডিউলগুলি ফোল্ডার পেয়েছি। এটি কীভাবে কাজ করবেন?
জোসেমিগাল্লাস

15
এটি এইরকম, আমি গুরুতর, আমি এই কোডটি অনুলিপি করার জন্য 20 তম বার এই উত্তরটি নিয়ে এসেছি ... xD
সিপি

6
এর অর্থ কী '{}' +?
রোকিত

4
{}এমন একটি স্থানধারক যা findএটি খুঁজে পাওয়া ফাইল পাথের সাথে প্রতিস্থাপন করে। প্রতিটি ফাইলের পাথ প্রত্যেকটির জন্য দৌড়ানোর চেয়ে একক কমান্ডে যুক্ত করতে +বলে । findrm
তমলিন

24

গৃহীত উত্তরের উপর উন্নতি করা,

find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +

আমি দেখতে পেলাম যে কমান্ডটি সমস্ত ফোল্ডারগুলি আনতে এবং তারপরে একটি মুছে ফেলা কমান্ডটি চালানোর জন্য খুব দীর্ঘ সময় চালায় \;, যাতে কমান্ডটি পুনরায় ব্যবহারযোগ্য -printকরার জন্য আমি পরামর্শ দিতে পারি এবং ডিরেক্টরিটি মুছে ফেলা দেখতে কমান্ডটি চালানো হচ্ছে তা চালানোর জন্য দেখুন see

দ্রষ্টব্য: আপনাকে অবশ্যই প্রথমে cdমূল ডিরেক্টরিতে প্রবেশ করতে হবে এবং তারপরে find .ব্যবহারের পরিবর্তে কমান্ডটি চালাতে হবেfind {project_directory}

একে একে ফোল্ডার মুছতে

find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;

একে একে ফোল্ডার মুছতে এবং ফোল্ডারটি মুছে ফেলা হচ্ছে

find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;

সম্পাদনা করুন:

ইন্টারেক্টিভ পদ্ধতিতে এমন লোকেরা @ জেক্কেপ উত্তরটি উল্লেখ করে, আপনি যে ডিরেক্টরিটি ছাঁটাই করতে চান তাতে এটি চালান।

npx npkill

গৃহীত উত্তরের @ সিধার্থে দুর্দান্ত উন্নতি, অনেক প্রশংসা
এনক্রারেক্স

17

ব্যবহার করে দেখুন https://github.com/voidcosmos/npkill

npx npkill

এটি সমস্ত নোড_মডিউলগুলি সন্ধান করবে এবং আপনাকে সেগুলি সরাতে দেবে।

npkill


10

আমি এই সমাধানটি নিয়ে এসেছি,

  • প্রথমে ফোল্ডারটি ব্যবহার করে ফোল্ডারের findনাম উল্লেখ করুন।
  • ডিলিট কমান্ড পুনরাবৃত্তির সাথে কার্যকর করুন -exec rm -rf '{}' +

পুনরাবৃত্তভাবে ফোল্ডারগুলি মুছতে নিম্নলিখিত কমান্ডটি চালান

find /path -type d -name "node_modules" -exec rm -rf '{}' +


1

bashঅপসারণ ফাংশন node_modules। এটি node_modulesসন্ধান পাথগুলি মুদ্রণের সময় বর্তমান ডিরেক্টরি ডিরেক্টরি থেকে পুনরুত্পরিচিতভাবে সমস্ত ডিরেক্টরি সরিয়ে ফেলবে ।

আপনার কেবল নিজের কোথাও প্রবেশ করা দরকার $PATH

rmnodemodules(){

  find . -name 'node_modules' -type d -prune -exec echo '{}' \; -exec rm -rf {} \; 

}

0

এটি সত্যিই ভাল কাজ করে

find . -name "node_modules" -exec rm -rf '{}' +

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