macos 通过保留最后 n 个字符重命名所有文件
macos rename all files by keeping the last n characters
我将如何递归重命名
filename9_123.txt
filename10_124.txt
filename11_125.txt
至
123.txt
124.txt
125.txt
我可以使用 ruby 吗?应该使用默认安装的版本。注意:如果名称冲突,将覆盖文件。
ruby -e "require 'pathname';Pathname.glob('*_*.txt')
.each {|f| f.rename f.basename.to_s.split('_').last }"
您可能需要删除换行符,这只是为了更好地格式化此处。
如果您所说的“递归”是指在子目录中:
ruby -e "require 'pathname';Pathname.glob('**/*_*.txt')
.each {|f| f.rename(f.dirname / f.basename.to_s.split('_').last) }"
此版本失败,它即将覆盖现有文件:
ruby -e "require 'pathname';Pathname.glob('**/*_*.txt')
.to_h {|f| [f, f.dirname / f.basename.to_s.split('_').last] }
.each {|from, to| fail(to) if to.exists?; from.rename to }"
我将如何递归重命名
filename9_123.txt
filename10_124.txt
filename11_125.txt
至
123.txt
124.txt
125.txt
我可以使用 ruby 吗?应该使用默认安装的版本。注意:如果名称冲突,将覆盖文件。
ruby -e "require 'pathname';Pathname.glob('*_*.txt')
.each {|f| f.rename f.basename.to_s.split('_').last }"
您可能需要删除换行符,这只是为了更好地格式化此处。
如果您所说的“递归”是指在子目录中:
ruby -e "require 'pathname';Pathname.glob('**/*_*.txt')
.each {|f| f.rename(f.dirname / f.basename.to_s.split('_').last) }"
此版本失败,它即将覆盖现有文件:
ruby -e "require 'pathname';Pathname.glob('**/*_*.txt')
.to_h {|f| [f, f.dirname / f.basename.to_s.split('_').last] }
.each {|from, to| fail(to) if to.exists?; from.rename to }"