我有一个复杂的文件夹结构,其中包含超过 100,000 张图片,类似于以下结构:
├── folder1
│ ├── 0001.jpeg
│ └── 0002.jpeg
├── folder2
│ ├── 0001.jpeg
│ └── 0002.jpeg
├── folder3
│ └── folder4
│ ├── 0001.jpeg
│ └── 0002.jpeg
└── folder5
└── folder6
└── folder7
├── 0001.jpeg
└── 0002.jpeg
我想保持文件夹结构不变,但我想将每个 .jpeg 文件重命名为 .jpg 文件(.jpeg->.jpg)
我的下游命令需要 .jpg 文件,而尝试更改该代码以仅处理 .jpeg 文件失败。
答案1
打开终端。
使用命令将目录更改为 folder1 的父目录
cd
。cd /path/to/parent/directory/of/folder1/
运行此命令将所有扩展名为 .jpeg 的文件重命名为 .jpg。
find . -type f -name '*.jpeg' -print0 | xargs -0 rename 's/\.jpeg/\.jpg/'
上述命令使用rename
基于 Debian 的操作系统默认安装的 Perl 程序。在其他一些 Linux 发行版中,相同的 Perl 重命名程序被称为前缀.prename 可以按照以下说明进行安装:获取 Perl 重命名实用程序,而不是内置重命名。