Skip to content

Instantly share code, notes, and snippets.

@ZephiroRB
Created June 4, 2016 03:58
Show Gist options
  • Save ZephiroRB/6b0aa7409419d05a44430852122df690 to your computer and use it in GitHub Desktop.
Save ZephiroRB/6b0aa7409419d05a44430852122df690 to your computer and use it in GitHub Desktop.
Organiza tus Carpetas con ruby, Sorting Folders with Ruby
# Sorting Folders (Downloads)
# Organizar tus Folders rapidamente.
# Desarrollado por Carlos Montalvo (zetanova.com) 2016
require 'fileutils'
require 'time'
excludes_files = [
/sorting.rb/i,
/^[12][0-9]{3}$/i,
/\$/i
]
re = Regexp.union(excludes_files)
my_files = Dir["*"].sort_by { |a| File.stat(a).ctime }
my_files.reverse.each do |filename|
next if filename.match(re)
ctime = File.stat(filename).ctime
structure_folders = "#{ctime.strftime("%Y")}/#{ctime.strftime("%m")}/#{ctime.strftime("%d")}"
unless ctime.strftime("%Y-%m-%d") == Time.now.strftime("%Y-%m-%d")
FileUtils::mkdir_p "#{structure_folders}" unless File.directory?("#{structure_folders}")
FileUtils.mv(filename, "#{structure_folders}/")
end
puts "#{filename}"
end
@ZephiroRB
Copy link
Author

ZephiroRB commented Jun 4, 2016

Lo escribe para facilitarme el echo de ordenar la carpeta downlodas (Descargas), soy de las personas que descarga muchas cosas al día, esto provoca que al final de la semana tenga muchos archivos y tengo que estar observando cuando las descarge, el script lee todos los archivos menos los que he bajado hoy, y los va metiendo en carpetas segun su fecha de descarga. Para sacarle mas provecho añado el script a un cron diario. asi cada vez que me levanto todos los archivos estan ordenados.

ruby sorting.rb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment