চিবির্গ দ্বারা মন্তব্য করা হিসাবে, লোড প্রতিটি ফাইলের জন্য আরএম শুরু করার কারণে হয়। আমি উত্তরটি লক্ষ্য করেছি যেখানে tmpwatchবিকল্প হিসাবে পরামর্শ দেওয়া হয়েছে, যা আমি নিশ্চিত যে ভালভাবে কাজ করে। তবে এটি প্রয়োজনীয় নয়।
আপনি যদি এই জাতীয় যুক্তিগুলির তালিকার মধ্যে পাওয়া ফাইলগুলিকে জমা করতে বলেন তবে এটি একবার কার্যকর করতে দেওয়া আদেশটি চালাতে পারে:
find /path -name "*.moo" -exec rm {} \+
এটি কখনও কখনও কাজ করতে ব্যর্থ হতে পারে কারণ আর্গুমেন্টের তালিকাটি শেল (getconf ARG_MAX) দ্বারা অনুমোদিত সর্বোচ্চের চেয়ে (বাইটে) বড় হতে পারে grow এটি xargs দ্বারা -L বিকল্পের সাহায্যে সমাধান করা যেতে পারে।
এই উদাহরণ বিবেচনা করুন:
$ echo 0 > /tmp/it;
$ for i in {0..15000};do echo $i;done |\
xargs --no-run-if-empty -L 5000 ./tmp/xr.sh
Iteration=0; running with 5000 arguments
Iteration=1; running with 5000 arguments
Iteration=2; running with 5000 arguments
Iteration=3; running with 1 arguments
$ cat tmp/xr.sh
#!/bin/sh
IT=`cat /tmp/it`
echo Iteration=$IT\; running with $# arguments
let IT=IT+1
echo $IT > /tmp/it
সুতরাং অতিরিক্ত সফ্টওয়্যার ইনস্টল করার দরকার নেই, আপনার যা দরকার তা হ'ল gnu-findutils:
find /path -mtime +30 -print0 | xargs -0 -L 5000 rm
cache*অনেকগুলি ফাইলে প্রসারিত হয় তবে আপনিfind . -name 'cache*' -mtime +30 -exec rm {} \;পরিবর্তে এর মতো কিছু চেষ্টা করতে চাইতে পারেন ।