Here are two Ruby scripts that I find useful. Both of them have been tested under Ruby 1.9.2p0. The first is mv_ldown: it moves the most recently downloaded file (from ~/Downloads) into the current directory.
#! /usr/bin/env ruby src = Dir[File.expand_path('~/Downloads/*')]. sort_by { |x| File.mtime(x) }. last abort("nothing in ~/Downloads dir") unless src dest = File.join(File.absolute_path('.'), File.basename(src)) abort("#{dest} already exists") if File.exists?(dest) File.rename(src, dest) puts "#{File.basename src} to ."
The second is sl: it just like the command "ln -s SRC DEST", but you don't have to remember the order of the parameters. The file that exists is the source and the other, the destination.
#! /usr/bin/env ruby require 'fileutils' abort("Usage: sl SRC DEST") unless ARGV.length == 2 a, b = ARGV if File.exists?(a) && File.exists?(b) abort("Both #{a} & #{b} exists") elsif File.exists?(a) src, dest = a, b elsif File.exists?(b) src, dest = b, a else abort("Neither #{a} nor #{b} exists") end src = File.absolute_path src abort("#{src} not a file") unless File.file?(src) dest = File.absolute_path dest system("ln -s #{src} #{dest}")