QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2234|回复: 11

如何编写BASH或Perl来列出这个目录下的文件和文件夹?

[复制链接]
发表于 2005-6-10 18:04:53 | 显示全部楼层 |阅读模式
列出一层即可,不需要递归。
发表于 2005-6-10 23:57:21 | 显示全部楼层
ls 不可以吗?
回复

使用道具 举报

 楼主| 发表于 2005-6-15 19:35:37 | 显示全部楼层
不是手工输入命令,要编写程序
类似这样:
foreach file in dir_name
    print file
endfor
回复

使用道具 举报

发表于 2005-6-15 20:10:07 | 显示全部楼层
类似这样?[code:1]for i in $(ls)
do
echo $i
done[/code:1]
回复

使用道具 举报

发表于 2005-6-15 21:20:27 | 显示全部楼层
shell中ls也是可以作为一个命令啊。编写程序不过是为了自己好用罢了,何必要如此麻烦呢?
回复

使用道具 举报

发表于 2005-6-16 08:54:33 | 显示全部楼层
吃饱了撑着了
回复

使用道具 举报

发表于 2005-6-18 13:52:48 | 显示全部楼层
版主zhy2111314的代码很好
for i in $(ls)
do
echo $i
done


我想请问斑竹,这样写行不行呢?
LOG='ls *.log'
for i in $LOG
do
echo $i
done
下面的写法也不行,为什么呢?
for i in 'ls'
do
echo $i
done
回复

使用道具 举报

发表于 2005-6-19 15:25:16 | 显示全部楼层
LS干嘛不行?
回复

使用道具 举报

发表于 2005-6-20 08:34:13 | 显示全部楼层
ls当然行,但我只是举例而已--------------我有别的用途!
烦请高人再回答我那两个问题-------------是否把单引号改成左引号就行呢?但是教科书上都说是单引号进行命令替换啊!
回复

使用道具 举报

发表于 2005-6-20 09:31:28 | 显示全部楼层
[quote:c8570476bf="zywsd"]版主zhy2111314的代码很好
for i in $(ls)
do
echo $i
done


我想请问斑竹,这样写行不行呢?
LOG='ls *.log'
for i in $LOG
do
echo $i
done
下面的写法也不行,为什么呢?
for i in 'ls'
do
echo $i
done[/quote]

那个单引号不是和双引号在一起的那个,是tab键上面那个。
回复

使用道具 举报

 楼主| 发表于 2005-6-22 15:05:57 | 显示全部楼层
[quote:76c193730f="不死的天神永恒的封印"]吃饱了撑着了[/quote]

因为实际中有很多稍复杂些的应用,不能简单地type一个ls就行了。
回复

使用道具 举报

发表于 2005-7-1 14:09:15 | 显示全部楼层
#======================================#
# List Directory
#= List ===============================#
sub ls {
   local ($buffer, $dirname, @list, %list, $j);
   $buffer = shift;
   #-- dirname --#
   $dirname = $buffer?$buffer:'.';
   opendir (DIR, $dirname)
      or return;
   @list = readdir (DIR);
   closedir (DIR)
      or return;
   $main'object{'objectName'} = $buffer;
   foreach (@list) {
      $j = "$dirname/$_";
      -e $j
         and $main'object{'subObjectNum'}++;
      -d $j
         and $_ ne '.'
            and $_ ne '..'
               and $main'object{'subDirectoryNum'}++;
      -f $j
         and $main'object{'subFileNum'}++;
      @$_ = stat $j;
      $list{$_} = \@$_;
   }
   return (\%list);
}

用在了自己的网站上的,懒得改照搬了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 22:25 , Processed in 0.044640 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表