如何递归重命名子文件夹下的所有md类型文件?

如何递归重命名子文件夹下的所有md类型文件?
$ tree .

.
├── tmp1
│   └── acsfd.md
├── tmp2
│   └── adb.md
└── tmp3
    └── aa23aa.md
...
└── tmpn
    └── random.md

想要将所有md文件重命名为index.md

我试过:

find . -name "*.md" -exec mv {} index.md \;

但这将删除所有md文件并index.md在当前文件夹中创建一个。

答案1

在这种情况下,您需要-execdir在包含匹配文件的目录中-exec运行:mv

$ tree
.
├── tmp1
│   └── rand32726.md
├── tmp2
│   └── rand16097.md
├── tmp3
│   └── rand10683.md
└── tmpn
    └── rand23531.md

4 directories, 4 files
$ find . -iname '*.md' -execdir mv {} index.md \;
$ tree
.
├── tmp1
│   └── index.md
├── tmp2
│   └── index.md
├── tmp3
│   └── index.md
└── tmpn
    └── index.md

4 directories, 4 files

相关内容