ترفند لینوکسی

فولدریابی

پیداکردن فایل‌های بزرگ در سیستم با استفاده از دستورهایی چون find ساده است. اما اگر به‌دنبال دایرکتوری‌هایی می‌گردید که حجم آن‌ها از میزان مشخصی بیشتر است، در این صورت دستور find هم نمی‌تواند کمک‌تان کند. اما با کمک این اسکریپت ساده می‌توانید دایرکتوری‌های بزرگ را هم بیابید.
کد خبر: ۲۹۷۵۲۰

این اسکریپت چند انتخاب دارد که می‌توانید از آن‌ها استفاده کنید، این انتخاب‌ها به صورت زیرند:

- اگر -d را جلوی دستور بزنید، دایرکتوری پایه تا جستجو را نشان می‌دهد.

- اگر -t را انتخاب کنید، آستانه حجم را به مگابایت محاسبه می‌کند.

- اگر -x را زدید، الگوهایی از جستجو را نادیده می‌گیرد.

به دستور زیر دقت کنید:

$ ./file.pl -d ../../ -t 100 -x simulator*

این دستور دایرکتوری‌هایی که تا دو سطح بالاتر از دایرکتوری فعلی قرار دارند را جستجو کرده و آن‌هایی که حجم بیشتر از ??? مگابایت دارند را انتخاب می‌کند. اگر این دایرکتوری‌ها با نام simulator شروع شوند، آن‌ را در فهرست نمی‌آورد.

کد زیر را داخل یک فایل متنی کپی کرده و سپس با فرمت .pl ذخیره کنید.

#!/usr/bin/perl -w

use Getopt::Std;

use Cwd 'abs_path';

my %dir;

getopt("dtx",\%dir);

if(!defined $dir{d}){

        print "Usage: program -d dir

[-t threshhold] [-x exclude pattern]\n";

        exit 1;

}

if(!defined $dir{t}){

        $dir{t}=1000;

}

my $f=abs_path($dir{d});

my $cmd="du -m -c $f";

 

if(defined $dir{x}){

      $cmd=$cmd." --exclude=$dir{x}";

}

my $line=`$cmd`;

while($line=~/(\d+)\s+([&~#@&\r\n]+)\r?\n/g){

        if($1»$dir{t}){

                print $1.",".$2."\n";    }

}

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها