首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >重命名shell中的多个文件

重命名shell中的多个文件
EN

Stack Overflow用户
提问于 2011-08-02 19:29:32
回答 3查看 76.6K关注 0票数 65

我在一个目录中有多个文件,例如:linux_file1.mp4linux_file2.mp4等等。如何使用shell移动这些文件,使其名称为file1.mp4file2.mp4等。我有大约30个文件要移动到新名称。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-02 20:22:57

我喜欢mmv做这类事情

代码语言:javascript
复制
mmv 'linux_*' '#1'

但您也可以使用rename。请注意,通常有两个语法完全不同的rename命令。一个是用Perl编写的,另一个是用util-linux分发的,所以我将它们区分为下面的"perl rename“和"util rename”。

使用Perl重命名:

代码语言:javascript
复制
rename 's/^linux_//' linux_*.mp4

正如cweiske正确指出的那样。

使用util rename:

代码语言:javascript
复制
rename linux_ '' linux_*.mp4

你怎么知道你有哪一个重命名?尝试运行rename -V;如果您的版本是util rename,它将打印版本号,如果是perl rename,它将无害地报告和unknown选项并显示使用情况。

如果您既没有rename也没有mmv,并且不想或不能安装它们,您仍然可以使用普通的旧shell代码来实现这一点:

代码语言:javascript
复制
for file in linux_*.mp4 ; do mv "$file" "${file#linux_}" ; done

此语法适用于任何符合XPG4或更高版本的POSIX,目前基本上都是shell。

票数 112
EN

Stack Overflow用户

发布于 2011-08-02 19:35:40

代码语言:javascript
复制
$ rename 's/linux_//' linux_*.mp4
票数 17
EN

Stack Overflow用户

发布于 2017-07-21 17:12:55

我能够通过组合@dtrckd和@Sorpigal答案来替换目录中的文件名。

代码语言:javascript
复制
for file in `find -name "linux_*.mp4"`; do mv "$file" "${file/linux_/}" ; done
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6911301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档