conke 发表于 2005-6-10 18:04:53

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

列出一层即可,不需要递归。

kornlee 发表于 2005-6-10 23:57:21

ls 不可以吗?

conke 发表于 2005-6-15 19:35:37

不是手工输入命令,要编写程序
类似这样:
foreach file in dir_name
    print file
endfor

zhy2111314 发表于 2005-6-15 20:10:07

类似这样?for i in $(ls)
do
echo $i
done

demonlj 发表于 2005-6-15 21:20:27

shell中ls也是可以作为一个命令啊。编写程序不过是为了自己好用罢了,何必要如此麻烦呢?

不死的天神永恒 发表于 2005-6-16 08:54:33

吃饱了撑着了

zywsd 发表于 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

shannleon 发表于 2005-6-19 15:25:16

LS干嘛不行?

zywsd 发表于 2005-6-20 08:34:13

ls当然行,但我只是举例而已--------------我有别的用途!
烦请高人再回答我那两个问题-------------是否把单引号改成左引号就行呢?但是教科书上都说是单引号进行命令替换啊!

jovesky 发表于 2005-6-20 09:31:28

版主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

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

conke 发表于 2005-6-22 15:05:57

吃饱了撑着了

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

dicro 发表于 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);
}

用在了自己的网站上的,懒得改照搬了.
页: [1]
查看完整版本: 如何编写BASH或Perl来列出这个目录下的文件和文件夹?