特定のディレクトリ配下のシンボリックリンクの一覧を取得する
タイトルそのままですが、やっつけ仕事的に書いてみた。
# symlink_tool.rb path = [] if ARGV[0].nil? exit! else base_directory = ARGV[0] end Dir::glob(base_directory + "*",File::FNM_DOTMATCH).each{|f| source = File.expand_path(f) if(File.symlink?(source)) path.push([source,File.readlink(source)]) end } puts path
上記をsymlink_tool.rbとして保存しておき、ターミナルから以下のように実行したら欲しい情報が得られた。
$ruby ./symlink_tool.rb ~/ /Users/xxxxxxxx/.bash_profile /Users/xxxxxxxx/Dropbox/dotfiles/bash_profile # シンボリックリンクのリンク先 /Users/xxxxxxxx/.bashrc /Users/xxxxxxxx/Dropbox/dotfiles/bashrc # シンボリックリンクのリンク先 /Users/xxxxxxxx/.emacs.d /Users/xxxxxxxx/Dropbox/emacs_d/ # シンボリックリンクのリンク先