e$BLn8}$H?=$7$^$9!#e(B
File.renamee$B$,e(BErrno::EXDEVe$B$K$J$k>u67$G%G%#%l%/%H%j$r0\F0$9$k$He(B
e$B%G%#%l%/%H%j$KBP$7$Fe(BFile.unlinke$B$7$h$&$H$7$F!"e(BFileUtils.mve$B$,e(B
e$B%(%i!<$K$J$j$^$9!#e(B
$ cd ~
$ mkdir foo
$ touch foo/1
home/ruby/local/ruby185/bin/ruby -rfileutils -ve ‘FileUtils.mv(“foo”,
“/tmp”)’
ruby 1.8.5 (2007-02-14 patchlevel 20) [i386-freebsd6.1]
$ /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:504:in unlink': Operation not permitted - foo (Errno::EPERM) from /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:504:in
mv’
from /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:1379:in
fu_each_src_dest' from /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:1393:in
fu_each_src_dest0’
from /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:1377:in
fu_each_src_dest' from /home/ruby/local/ruby185/lib/ruby/1.8/fileutils.rb:490:in
mv’
from -e:1
e$BBEEv$+$I$&$+$o$+$j$^$;$s$,!"0l1~%Q%C%A$r$D$1$F$*$-$^$9!#e(B
— fileutils.rb.orig Sun Feb 25 14:46:44 2007
+++ fileutils.rb Sun Feb 25 14:53:16 2007
@@ -484,7 +484,7 @@
FileUtils.mv Dir.glob(‘test*.rb’), ‘test’, :noop => true,
:verbose => true
def mv(src, dest, options = {})
- fu_check_options options, :force, :noop, :verbose
- fu_check_options options, :force, :noop, :verbose, :secure
fu_output_message “mv#{options[:force] ? ’ -f’ : ‘’}
#{[src,dest].flatten.join ’ '}” if options[:verbose]
return if options[:noop]
fu_each_src_dest(src, dest) do |s, d|
@@ -501,7 +501,11 @@
File.rename s, d
rescue Errno::EXDEV
copy_entry s, d, true
-
File.unlink s
-
if options[:secure]
-
remove_entry_secure s, options[:force]
-
else
-
remove_entry s, options[:force]
-
end end rescue SystemCallError raise unless options[:force]
@@ -514,7 +518,7 @@
module_function :move
OPT_TABLE[‘mv’] =
- OPT_TABLE[‘move’] = %w( noop verbose force )
-
OPT_TABLE[‘move’] = %w( noop verbose force secure )
def rename_cannot_overwrite_file? #:nodoc:
/djgpp|cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM
GO Noguchi[email protected]