迭代ove目录并在每个目录中执行任务

时间:2017-02-23 13:31:29

标签: unix

我希望有人可以帮助我使用执行以下操作的bash脚本:

  1. 遍历路径中的所有目录
  2. 在每个目录中a)将名称以“jpt”开头的文件重命名为目录名称,b)将重命名的文件重命名为父目录,c)然后删除目录。
  3. 所以,基本上我有一些文件夹的文件以'jpt'开头。所有文件夹中的文件名都相同。我想用文件替换文件夹。重命名文件是为了使它们不同。

    提前谢谢你!

    克里希纳

1 个答案:

答案 0 :(得分:0)

这是一个完成我理解的脚本:

#!/bin/dash

set -e

mvJtp() {
  local fromDir="$1"
  local f
  for f in "$fromDir"/*
  do if [ -d "$f" ]
     then mvJtp "$f"
     elif [ -f "$f" ]
     then case "$f" in
          "$fromDir"/jpt*) 
              mv -n "$f" "$fromDir".tmp
              rmdir "$fromDir"
              mv -n "$fromDir".tmp "$fromDir"
              return 0
           ;;
          esac
     fi
  done
}

mvJtp jptSrc