ম্যাকোস এবং লিনাক্স
বাসদ এর find
MacOS উপর বাস্তবায়ন গনুহ খোঁজ থেকে ভিন্ন - এই উভয় বাসদ এবং গনুহ এটি সঙ্গে সামঞ্জস্যপূর্ণ। ব্যবহার করে -name
এবং এর -o
জন্য - গ্লোব্বিং বাস্তবায়ন দিয়ে শুরু করুন বা - আপনার .bashrc
ফাইলে এই ফাংশনটি রাখুন :
pyclean () {
find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete
}
তারপরে cd
যে ডিরেক্টরিটিতে আপনি পুনরাবৃত্তভাবে পরিষ্কার করতে চান তা টাইপ করুন এবং টাইপ করুন pyclean
।
জিএনইউ সন্ধানযোগ্য
এটি একটি জিএনইউ সন্ধান, কেবলমাত্র (যেমন লিনাক্স) সমাধান, তবে আমি মনে করি এটি রেজেক্সের সাথে কিছুটা সুন্দর er
pyclean () {
find . -regex '^.*\(__pycache__\|\.py[co]\)$' -delete
}
পাইথন 3 ব্যবহার করে যে কোনও প্ল্যাটফর্ম
উইন্ডোজ, সম্ভবত আপনি এমনকি না find
। তবে আপনার কাছে সম্ভবত পাইথন 3 রয়েছে যা 3.4 থেকে শুরু করে সুবিধাজনক pathlib
মডিউল রয়েছে:
python3 -Bc "import pathlib; [p.unlink() for p in pathlib.Path('.').rglob('*.py[co]')]"
python3 -Bc "import pathlib; [p.rmdir() for p in pathlib.Path('.').rglob('__pycache__')]"
-B
পতাকা পাইথন বলে লিখতে না .pyc
ফাইল। ( PYTHONDONTWRITEBYTECODE
পরিবেশের পরিবর্তনশীলও দেখুন ))
উপরের আপত্তিগুলি লুপিংয়ের জন্য উপলব্ধিগুলি তালিকা করে, তবে ব্যবহার করার সময় python -c
শৈলী বরং একটি গৌণ উদ্বেগ। বিকল্পভাবে আমরা অপব্যবহার করতে পারি (উদাহরণস্বরূপ) __import__
:
python3 -Bc "for p in __import__('pathlib').Path('.').rglob('*.py[co]'): p.unlink()"
python3 -Bc "for p in __import__('pathlib').Path('.').rglob('__pycache__'): p.rmdir()"
একটি উত্তরের সমালোচনা
শীর্ষ উত্তরটি বলত:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
এটি কম দক্ষ বলে মনে হচ্ছে কারণ এটি তিনটি প্রক্রিয়া ব্যবহার করে। find
একটি নিয়মিত অভিব্যক্তি গ্রহণ করে, তাই আমাদের পৃথক প্রার্থনার প্রয়োজন নেই grep
। একইভাবে এটিরও রয়েছে -delete
, সুতরাং আমাদের rm
এখানে একটি মন্তব্যের বিপরীতে পৃথক প্রার্থনার প্রয়োজন নেই, এটি নিয়মিত এক্সপ্রেশন ম্যাচের গুণে খালি হয়ে যাওয়ার পরে এটি খালি নয় এমন ডিরেক্টরিগুলি মুছে ফেলবে ।
থেকে xargs
মানুষ পৃষ্ঠা:
find /tmp -depth -name core -type f -delete
ডিরেক্টরি / টিএমপি বা তার নীচে মূল নামে থাকা ফাইলগুলি সন্ধান করুন এবং সেগুলি মুছুন, তবে পূর্ববর্তী উদাহরণের তুলনায় আরও দক্ষতার সাথে (কারণ আমরা আরএম চালু করার জন্য কাঁটাচামচ (2) এবং এক্সিকিউট (2) ব্যবহারের প্রয়োজন এড়াচ্ছি এবং আমাদের প্রয়োজনের দরকার নেই অতিরিক্ত xargs প্রক্রিয়া)।
*__pycache__
,*.pyc*
এবং এটি ফাইল এবং ডিরেক্টরিগুলির মধ্যে পার্থক্য করে না। উত্পন্ন বেশিরভাগrm
কমান্ডও অতিরিক্ত অতিরিক্ত হবে।