ruby 1.7 特性
包含基本文件操作的模块。
Options: noop verbose 移动到dir目录。 若被用作迭代器的话, 将在块停止工作之后 返回原来的目录。 FileUtils.cd '/', :verbose # chdir and report it
Options: verbose 若newer比older_list中的任何文件都新的话,就返回真。 不存在的文件会被看做是最老的文件。 FileUtils.newest? 'hello.o', 'hello.c', 'hello.h' or system 'make'
Options: noop verbose 生成dir目录 。 FileUtils.mkdir 'test' FileUtils.mkdir %w( tmp data ) FileUtils.mkdir 'notexist', :noop # does not create really
Options: noop verbose
将生成dir目录及其所有上级目录。
例如
FileUtils.mkdir_p '/usr/local/lib/ruby'
将生成下列所有目录(若没有的话)。
* /usr
* /usr/local
* /usr/local/bin
* /usr/local/bin/ruby
Options: noop, verbose removes directory DIR. FileUtils.rmdir 'somedir' FileUtils.rmdir %w(somedir anydir otherdir) # does not remove directory really, outputing message. FileUtils.rmdir 'somedir', :verbose, :noop
Options: force noop verbose 生成指向old的硬连接new 。 若new已存在且为目录时,生成new/old 。 若new已存在且不是目录的话,会引发Errno::ENOTDIR异常。 但是若指定了force选项的话,就会覆盖new。 FileUtils.ln 'gcc', 'cc', :verbose FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'
Options: force noop verbose 生成指向list[0]的硬连接destdir/list[0]和指向list[1]的硬连接destdir/list[1]...。 若destdir不是目录的话, 将引发Errno::ENOTDIR异常。 include FileUtils cd '/bin' ln %w(cp mv mkdir), '/usr/bin'
Options: force noop verbose 生成指向old的符号连接new 。 若new已存在且为目录时,生成new/old 。 若new已存在且不是目录的话,会引发Errno::ENOTDIR异常。 但是若指定了force选项的话,就会覆盖new。 FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby' FileUtils.ln_s 'verylongsourcefilename.c', 'c', :force
Options: force noop verbose
生成指向list[0]、list[1]...的符号连接 dir/list[0],
dir/list[1]...。若destdir不是目录的话,将引发
Errno::ENOTDIR异常。
生成指向list[0]的符号连接 destdir/list[0]和指向
list[1]的符号连接destdir/list[1]...。
若destdir不是目录时,将引发Errno::ENOTDIR异常。
FileUtils.ln_s Dir.glob('bin/*.rb'), '/home/aamine/bin'
Options: noop verbose 与ln_s(src,dest,:force)相同。
Options: preserve noop verbose 将文件src拷贝到dest。若dest是目录的话, 就拷贝到dest/src。若dest早已存在且并非目录时 将进行覆盖。 FileUtils.cp 'eval.c', 'eval.c.org'
Options: preserve noop verbose 把file1拷贝到dir/file1,把file2拷贝到dir/file2, 就这样将file1、file2以相同的文件名拷贝到dir目录。 若dir并非目录时, 会引发Errno::ENOTDIR异常。 FileUtils.cp 'cgi.rb', 'complex.rb', 'date.rb', '/usr/lib/ruby/1.6' FileUtils.cp :verbose, %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'
Options: preserve noop verbose 将src拷贝到dest。若src是目录则进行 递归式的拷贝。此时若dest是目录,则 拷贝到dest/src。 # installing ruby library "mylib" under the site_ruby FileUtils.rm_r site_ruby + '/mylib', :force FileUtils.cp_r 'lib/', site_ruby + '/mylib'
Options: preserve noop verbose
将list[0]、list[1], list[2]...等拷贝到dir目录中.
若list[n]是目录的话,就进行递归式的拷贝。
FileUtils.cp_r %w(mail.rb field.rb debug/) site_ruby + '/tmail'
FileUtils.cp_r Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop, :verbose
Options: noop verbose 将from移动直to。若to是目录,就移动到to/from。 若给出了3个以上的参数时, 将把其他文件移动到 dir目录中。 FileUtils.mv 'badname.rb', 'goodname.rb' FileUtils.mv 'stuff.rb', 'lib/ruby', :force
Options: noop verbose
将file1 file2...移动到dir/file1 dir/file2...
若进行跨区移动时,则进行拷贝。
FileUtils.mv 'junk.txt', 'dust.txt', '/home/aamine/.trash/'
FileUtils.mv Dir.glob('test*.rb'), 'T', :noop, :verbose
Options: force noop verbose 删除list[0]、list[1]...。若指定了:force 选项的话, 则会忽略操作过程中所有的StandardError。 FileUtils.rm %w( junk.txt dust.txt ) FileUtils.rm Dir['*.so'] FileUtils.rm 'NotExistFile', :force # never raises exception
Options: force noop verbose
删除list[0], list[1]...文件或目录.
若使用了force选项时,将忽略StandardError。
FileUtils.rm_r Dir.glob('/tmp/*')
FileUtils.rm_r '/', :force # :-)
Options: noop verbose same to rm_r(list,:force)
Options: verbose 若文件a和文件b的内容相同, 则返回真。 FileUtils.cmp 'somefile', 'somefile' #=> true FileUtils.cmp '/bin/cp', '/bin/mv' #=> maybe false.
Options: noop verbose 若from与to内容不同时,才会将from拷贝到to。 此时会将模式设为mode。 FileUtils.install 'ruby', '/usr/local/bin/ruby', 0755, :verbose FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', :verbose
Options: noop verbose 将文件LIST[0]、LIST[1]...的permission变为mode. FileUtils.chmod 0644, 'my.rb', 'your.rb' FileUtils.chmod 0755, 'somecommand' FileUtils.chmod 0755, '/usr/bin/ruby', :verbose
Options: noop verbose
更新list[0], list[1]...的最终修改时间(mtime)和访问时间(atime).
若list[n]并不存在时,就生成空文件。
FileUtils.touch 'timestamp'
FileUtils.touch Dir.glob('*.c'); system 'make'
与FileUtils中的方法定义相同, 且运作方式也一样, 但在运行前会出现提示信息。
与FileUtils中的方法定义相同, 但实际上并不会对文件做出修改。