Linux下 查看当前目录的所有文件
2012-06-29 17:01
369 查看
最近在学习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
效果如下:
源码如下:
#!/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
效果如下:
相关文章推荐
- linux命令-查看当前目录下所有文件的大小:“ll -h”
- Linux C++ 查看目录下所有文件
- Linux如何查看当前目录下文件的个数
- Linux查看当前目录下文件的个数
- linux 查看文件夹下的文件个数(当前目录的文件数)
- linux查看目录下所有文件内容中是否包含某个字符串
- linux查找当前目录下包含某一单词的所有文件并进行替换
- linux c 列出当前工作目录下所有的文件
- Linux目录遍历实现 -- 列出当前目录下所有文件
- linux 查看文件夹下的文件个数(当前目录的文件数)
- Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限
- linux-C实现查看目录中所有文件
- linux 查看文件夹下的文件个数(当前目录的文件数
- linux命令行更改文件名:将当前目录下所有子目录下以a开头的.cpp文件改名为以b开头的.c文件
- 【Unxi/Linux】【命令】【文件,目录操作工具】查看当前工作目录完整路径 - pwd
- linux下遍历当前目录下的所有文件和目录
- 在linux下用C语言实现递归查看某个目录中的所有文件
- Linux查看当前目录下文件的个数
- linux 查看文件夹下的文件个数(当前目录的文件数)
- Linux中查看当前目录下所有子目录空间占用情况的命令 [plain] view plain copy du -shc *