linux - 如何使用终端重命名文件

标签 linux ubuntu filenames file-rename

任何人都可以推荐一个好的解决方案来递归地删除文件名中不需要的字母 删除

.720p.BluRay.x264-[YTS.AM]

例如:

 Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Yellow.Submarine.1968.720p.BluRay.x264-[YTS.AM].mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── You.Might.Be.The.Killer.2018.720p.BluRay.x264-[YTS.AM].mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Your.Name.2016.720p.BluRay.x264-[YTS.AM].mp4

变成:

 Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Yellow.Submarine.1968.mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── You.Might.Be.The.Killer.2018.mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Your.Name.2016.mp4

最佳答案

由于被删除的字符串对每个文件来说都是相同的,因此您可以使用findrename 来解决这个问题:

find . -type f -exec rename 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;

在包含这些文件夹的任何基本目录中运行它,它应该会清理文件。

要先进行测试,您可以在该重命名命令上使用 -n 标志,看看如果您允许它执行(没有 -n 标志)它会做什么:

find . -type f -exec rename -n 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;

关于linux - 如何使用终端重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400749/

相关文章:

linux - 是否可以在 Linux 上运行 Azure SDK?

linux - 带有 "Ismemberof"OpenDJ 的 ldapsearch |没有旁路 Acl

linux - 关于Unix/Linux内核编程的问题

ubuntu - 使用模块编译 nginx 配置失败

java - 编写java程序递归测试文件命名标准

Git复制文件保存历史

c++ - 使用 Blink 作为前端布局引擎——从哪里开始?

ubuntu - 使用 Doxygen 生成图表

database - 将 MongoDB compass 连接到另一台机器上运行的 MongoDB

r - 如何使用Rmarkdown在.Rrmd中生成.html和.md并重命名它们?