LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 839|回复: 3

求助:关于文件更名

[复制链接]
发表于 2008-10-21 20:29:18 | 显示全部楼层 |阅读模式
我想对目录下的所有文件和子目录下的所有文件进行重命名,要求每个目录或者子目录下的文件都从1开始命名,直到这个目录的文件结束为止;如果目录为空的要能自动跳过。

象这样的shell要如何编写?
发表于 2008-10-21 21:39:57 | 显示全部楼层
  1. $ cat rename.sh
  2. #!/bin/bash
  3. function rename_dir {
  4.     echo $1
  5.     local FILES=`ls $1/ -1`
  6.     local FILE
  7.     local idx
  8.     for FILE in $FILES
  9.     do
  10.         FILE="$1/$FILE"
  11.         if [ -d $FILE ]; then
  12.             rename_dir $FILE
  13.         fi
  14.     done
  15.     let idx=0
  16.     for FILE in $FILES
  17.     do
  18.         FILE="$1/$FILE"
  19.         echo $FILE
  20.         let idx=idx+1
  21.         mv $FILE ${FILE%/*}/$idx
  22.     done
  23. }
  24. rename_dir $1
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-21 22:06:12 | 显示全部楼层
不行啊!脚本对系统所有的文件进行更名,非常危险。
回复 支持 反对

使用道具 举报

发表于 2008-10-22 14:18:35 | 显示全部楼层
这个上面的脚本后面要跟目录名,就不会对所有的更名了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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