Programming language: Go
License: MIT License
Tags: Files    
Latest version: v1.2.0

copy alternatives and similar packages

Based on the "Files" category.
Alternatively, view copy alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of copy or a related project?

Add another 'Files' Package



Go Reference Actions Status codecov License: MIT Go Report Card GitHub tag (latest SemVer)

copy copies directories recursively.

Example Usage

err := Copy("your/directory", "your/directory.copy")

Advanced Usage

// Options specifies optional actions on copying.
type Options struct {

    // OnSymlink can specify what to do on symlink
    OnSymlink func(src string) SymlinkAction

    // OnDirExists can specify what to do when there is a directory already existing in destination.
    OnDirExists func(src, dest string) DirExistsAction

    // Skip can specify which files should be skipped
    Skip func(src string) (bool, error)

    // AddPermission to every entities,
    // NO MORE THAN 0777
    AddPermission os.FileMode

    // Sync file after copy.
    // Useful in case when file must be on the disk
    // (in case crash happens, for example),
    // at the expense of some performance penalty
    Sync bool

    // Preserve the atime and the mtime of the entries
    // On linux we can preserve only up to 1 millisecond accuracy
    PreserveTimes bool

// For example...
opt := Options{
    Skip: func(src string) {
        return strings.HasSuffix(src, ".git")
err := Copy("your/directory", "your/directory.copy", opt)


*Note that all licence references and agreements mentioned in the copy README section above are relevant to that project's source code only.