Linux下 查看当前目录的所有文件

最近在学习prel,写了个脚本,用于查询出当前目录下的所有文件。

源码如下:

#!/usr/bin/perl
use strict;
use warnings;
use locale;
use utf8;
use Cwd;




#Current sub dir
my @csdir=qw("");


#Current sub dir space
my @csspace=" ";


sub print_prefix
{
    my $len=$#csspace;
    for(my $i=0;$i <= $len -1 ;$i++)
    {
        print "    ";
    }
}


sub list_files
{
    my $curdir=$_[0];
    my $fulldir="";


    if(index($curdir,"/") != 0)
    {
        $fulldir=$fulldir."/".$curdir;
    }
    else
    {
        $fulldir=$curdir;
    }


    print_prefix();
    print ".".substr($fulldir,rindex($fulldir,'/'))."\n";


    my $FH;


    if(!(-e $fulldir))
    {


    }
    elsif(-f $fulldir) #file
    {
    }
    elsif(opendir($FH,$fulldir))
    {
        my @dirs=grep(!/^\.\.?$/,readdir $FH);


        my $len=$#dirs;
        my $b=0;
        for(my $i=0;$i <= $len;$i++)
        {
            if(-f $fulldir."/".$dirs[$i]) #It is a file
            {
                $b++;
                print_prefix();
                print "\t";
                print "$dirs[$i](" . get_file_size($dirs[$i]) . "k)\n";
            }
        }
        {
            push @csspace,"\t";
            for(my $i=0;$i <= $len;$i++)
            {
                if(-d $fulldir."/".$dirs[$i])#It is a dirscott
                {
                    list_files($fulldir."/".$dirs[$i]) ;
                }
            }
        }
        pop @csspace;
    }
}


sub get_file_size
{
    my @args = stat ($_[0]);


    if(!($args[7]))
    {
        return 0;
    }


    return $args[7] if($args[7] < 2048);
    return $args[7] / 1024 ;
}

my $cwd=getcwd;
list_files($cwd);


将以上代码:

1.保存成文件lsdir;

2.chmod 755 ldsir

3. ./lsdir

效果如下:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值