山本です。 Dir.globの順序が規定されていれば、下のようにできて便利ですね。 Dir.glob("s:/**/*", Dir.GLOB_POSTORDER) do |path| if File.directory?(path) Dir.delete(path) else File.delete(path) end end Dir.glob("s:/**/*") do |path| dest = "f:/" + path[3...path.size] if File.directory?(path) Dir.mkdir(dest) else copy(path, dest) # ファイルのコピーを実装 end end もしも **/ とシンボリックリンクのチェックがタイムリーでなくていいのなら、 上からマッチする順が下からマッチする順と同様に高速で、 デフォルトが上からマッチなので互換性も取れて、 Win32のパッチも今のままで問題なくなって、 なかださんのパッチでよさそうなんですけど、どうなんでしょうか。 (ただ、_WIN32のコードは外にだせるかも) Dir.glob("hoge/**/*") do |path| # path のディレクトリを削除 # path にディレクトリへのシンボリックリンクを作成 end みたいなコードを走らせた場合にとんでもないことになりそうなのが 怖いんですが・・・