Bash:使用文件夹名称重命名文件(每个文件夹 1 个)

Bash:使用文件夹名称重命名文件(每个文件夹 1 个)

我有一个文件夹,里面有 101 个子文件夹。下面是tree第一个子文件夹,以便直观地了解情况:

├── 001 - Implacablement votre
│   └── Implacablement votre - Sapir.epub
├── 002 - Savoir, c'est mourir
│   └── Savoir, c'est mourir T2- Sapir.epub
├── 003 - Puzzle chinois
│   └── Puzzle chinois T3 - Sapir.epub
├── 004 - L'Heroine de la mafia
│   └── L'Heroine de la mafia T4 - Sapir.epub

我想用文件文件夹的名称(其中包含书籍编号)重命名文件(我不关心该- Sapir部分),并且将所有重命名的文件放在一个文件夹中是否不太困难。

我对终端有基本的了解,但这超出了我的能力范围。如果你能帮助我,我将不胜感激。

答案1

你可以测试一下:

mkdir epubs

for f in */*.epub; do 
  mv "$f" epubs/"${f%% *} - $(basename "$f")"
done

相关内容