将所有.txt文件更改为某个文件夹中的.md文件


4

是否有终端命令或类似的东西批量重命名某个文件夹中的文件?基本上我想更改所有具有.txt作为文件类型的文件,并将其更改为.md(用于markdown)。这可能吗?我很乐意使用终端,作为开发人员,所以不要停留在解决方案上。 :)

提前感谢您提供的任何帮助。

Answers:


15

您可以在终端中执行以下操作:

找 。 -iname“* .txt”-exec bash -c'mv“$ 0”“$ {0%\ .txt} .md”'{} \;

这将以递归方式将当前目录中的所有.txt文件重命名为.md。


我测试了它并且它有效,感谢一堆。 :)
greduan

1

即使你不使用 zsh的 作为您的默认shell,您仍然可以使用 zmv 在一个临时shell:

zsh -c 'autoload zmv;$0 $@' zmv -w '*.txt' '$1.md'

递归:

zsh -c 'autoload zmv;$0 $@' zmv -w '**/*.txt' '$1$2.md'

注意: -n 选项对于测试很方便。

zmv 在...中描述 zshcontrib manpage,以及完整的glob语法描述 zshexpn “文件名生成”部分中的联机帮助页。


这似乎是一个较短的语法,嗯...你能告诉我一些zmv或zsh命令的作用吗?谢谢。 :)
greduan

-w,每个通配符都被放入一个位置参数( $1$2等)用于新名称;无 -w 必须包括括号以分隔匹配并放置在位置参数中的文本范围。所以,不要使用 -w 可能会让它更明显一点: zsh -c 'autoload zmv;$0 $@' zmv -n '(*).txt' '$1.md' 重命名全部 *.txt 结束的文件(在当前目录中) .md 代替 .txt; zsh -c 'autoload zmv;$0 $@' zmv -n '(**/)(*).txt' '$1$2.md' 同样在当前目录和所有子目录中。
Chris Johnsen

哦好的!非常感谢!我使用了另一个,但将来会考虑到这一点。 :)
greduan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.