查找 index.html 文件 & 用文件夹名称重命名并将文件上移一级

查找 index.html 文件 & 用文件夹名称重命名并将文件上移一级

使用 find 命令对解决 shell 脚本的工作流程帮助不大。

  1. 查找每个文件夹中的所有 index.html 文件。

我们可以将其与 find 命令一起使用。

find ./ -type f -name 'index.html' 
  1. 使用文件夹名称重命名文件 index.html。
  2. 重命名文件后,我想将文件上移一级。

我无法重命名文件并将文件上移一级。

因为我有超过 10 万个文件,所以 Xargs 对此很方便。

这是我目前拥有的代码

find ./ -type f -name 'index.html' | xargs -P 4 
├── dc
│   ├── adams-morgan
│   │   ├── car-donation
│   │   │   └── index.html
│   │   ├── feed.rss
│   │   ├── index.html
│   │   ├── junk-car
│   │   │   └── index.html
│   │   └── sitemap.xml
│   ├── american-university
│   │   ├── car-donation
│   │   │   └── index.html
│   │   ├── feed.rss
│   │   ├── index.html
│   │   ├── junk-car
│   │   │   └── index.html
│   │   └── sitemap.xml

重命名 index.html 文件并将文件上移一级有什么帮助吗?

提前致谢 Suresh

答案1

你也xargs可以使用find -exec。在里面,你可以运行一个小sh脚本:

find . -mindepth 2 -type f -name 'index.html' -exec sh -c '
    d="$(dirname "$1")";
    mv "$1" "$d/../$(basename "$d").html";
    rmdir "$d";
' find-sh {} \;

相关内容