如何进入未知目录

如何进入未知目录

我想写个shell程序
运行它就可以进入目录!
然后创建一个文件!
但不知道怎么判断它是目录如何!
是用正则表达式么!
要是用正则表达式
代码怎么写呢!!!      
看不懂,句子好像不是很通顺的样子      
这是修改目录以及子目录下的 文件名的把大写该成小写
但有点是它连目录也改,不知道该如何写!
function finddir()
{
        local d
        echo "$1"
        for d in "$1"/*; do
                [ -d "$d" ] && finddir "$d"
                mv $d $(echo $d | tr A-Z a-z)
        done
}
finddir "$1"      
想让它不改目录只改文件怎么修改程序!!!      
终于想明白了
谢谢斑竹!!
复制内容到剪贴板
代码:
function finddir()
{
  local d

  for d in "$1"/*; do
    [ -d "$d" ] && finddir "$d"
    if ([ -f "$d"])
      then
        mv $d $(echo $d | tr A-Z a-z)
    fi
  done
}
finddir "$1"
不过还有个问题,它不论文件名是不是大写还是小写都修改!
怎么让它只改大写文件呢!!!      
如果它是把所有文件名从小写改为大写!
在目录是小写的时候它就改不了目录的文件!
比如一个目录和文件是这样的
temp/text.txt

在执行 mv $d $(echo $d | tr a-z A-Z)
时候
本来是想 mv temp/text.txt temp/TEXT.TXT

实际上是执行mv temp/text.txt  TEMP/TEXT.TXT
因为没有TEMP目录就无法修改子目录下的文件名      
只改大写文件呢问题我想通了!
代码
复制内容到剪贴板
代码:
function finddir()
{
  local d

  for d in "$1"/*; do
    [ -d "$d" ] && finddir "$d"
    if ([ -f "$d"] && [COLOR=DarkRed]["$d" != $(echo $d | tr A-Z a-z)[/COLOR])
      then
        mv $d $(echo $d | tr A-Z a-z)
    fi
  done
}
finddir "$1"
      
改好了可以了
不过就是连目录也要同时改!
不知道可不可以不改目录
???????
复制内容到剪贴板
代码:
#!/bin/bash
function finddir()
{
        local d
        #echo "$1"
        for d in "$1"/*; do
                c=$(echo $d | tr A-Z a-z)
                if ([ -d "$d" ] && [ "$d" != "$c" ])
                      then
                        mv $d $c
                fi
                [ -d "$c" ] && finddir "$c"
                if ([ -f "$d" ] && [ "$d" != "$c" ])
                      then
                        echo "$d"
                        mv $d $c
                fi
        done
}
finddir "$1"

      
莫名其妙,这个帖子的主题是什么?灌水?
To be closed . . .