如何在Ruby中重命名文件?

这是我的.rb文件:

puts "Renaming files..." folder_path = "/home/papuccino1/Desktop/Test" Dir.glob(folder_path + "/*").sort.each do |f| filename = File.basename(f, File.extname(f)) File.rename(f, filename.capitalize + File.extname(f)) end puts "Renaming complete." 

这些文件从其初始目录移到.rb文件所在的位置。 我想现场重命名文件,而不移动它们。

有什么build议做什么?

简单地说:

 File.rename(f, folder_path + "/" + filename.capitalize + File.extname(f)) 

folder_path不是文件名的一部分吗?

 puts "Renaming files..." folder_path = "/home/papuccino1/Desktop/Test/" Dir.glob(folder_path + "*").sort.each do |f| filename = File.basename(f, File.extname(f)) File.rename(f, folder_path + filename.capitalize + File.extname(f)) end puts "Renaming complete." 

编辑:看来马特正在给我和我一样的答案,只是以一个稍微不同的方式。

如果您要在与要更改的文件相同的位置运行

 File.rename("test.txt", "hope.txt") 

虽然说实话,我有时候根本看不到使用ruby的意义……只要你的文件名在shell中被简单的解释,

 `mv test.txt hope.txt` 

如果你在Linux文件系统上,你可以试试mv #{filename} newname

您也可以使用File.rename(旧的,新的)