# fileutils.rb

Path: | fileutils.rb
Last Update: | Sat Oct 15 23:44:27 AUS Eastern Standard Time 2005

# fileutils.rb

Copyright © 2000-2005 Minero Aoki <aamine@loveruby.net>

This program is free software. You can distribute/modify this program under the same terms of ruby.

## module FileUtils

Namespace for several file utility methods for copying, moving, removing, etc.

### Module Functions

      cd(dir, options)
      cd(dir, options) {|dir| .... }
      pwd()
      mkdir(dir, options)
      mkdir(list, options)
      mkdir_p(dir, options)
      mkdir_p(list, options)
      rmdir(dir, options)
      rmdir(list, options)
      ln(old, new, options)
      ln(list, destdir, options)
      ln_s(old, new, options)
      ln_s(list, destdir, options)
      ln_sf(src, dest, options)
      cp(src, dest, options)
      cp(list, dir, options)
      cp_r(src, dest, options)
      cp_r(list, dir, options)
      mv(src, dest, options)
      mv(list, dir, options)
      rm(list, options)
      rm_r(list, options)
      rm_rf(list, options)
      install(src, dest, mode = <src's>, options)
      chmod(mode, list, options)
      chmod_R(mode, list, options)
      chown(user, group, list, options)
      chown_R(user, group, list, options)
      touch(list, options)

The `options` parameter is a hash of options, taken from the list `:force`, `:noop`, `:preserve`, and `:verbose`. `:noop` means that no changes are made. The other two are obvious. Each method documents the options that it honours.

All methods that have the concept of a "source" file or directory can take either one file or a list of files in that argument. See the method documentation for examples.

There are some `low level’ methods, which do not accept any option:

      copy_entry(src, dest, preserve = false, dereference = false)
      copy_file(src, dest, preserve = false, dereference = true)
      copy_stream(srcstream, deststream)
      remove_entry(path, force = false)
      remove_entry_secure(path, force = false)
      remove_file(path, force = false)
      compare_file(path_a, path_b)
      compare_stream(stream_a, stream_b)
      uptodate?(file, cmp_list)

## module FileUtils::Verbose

This module has all methods of FileUtils module, but it outputs messages before acting. This equates to passing the `:verbose` flag to methods in FileUtils.

## module FileUtils::NoWrite

This module has all methods of FileUtils module, but never changes files/directories. This equates to passing the `:noop` flag to methods in FileUtils.

## module FileUtils::DryRun

This module has all methods of FileUtils module, but never changes files/directories. This equates to passing the `:noop` and `:verbose` flags to methods in FileUtils.

### Required files

etc

[Validate]