Need help with copyfiles?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

calvinmetcalf
277 Stars 33 Forks MIT License 76 Commits 36 Opened issues

Description

copy files on the command line

Services available

!
?

Need anything else?

Contributors list

# 14,555
arcgis
Markdow...
React
Ember
45 commits
# 587,158
JavaScr...
4 commits
# 278,039
TypeScr...
Less
2 commits
# 14,377
jQuery
mousewh...
oauth2
Express
2 commits
# 291,872
Shell
CSS
HTML
sequeli...
2 commits
# 88,856
meteor
blaze
PHP
Visual ...
2 commits
# 85,065
aurelia
TypeScr...
javascr...
single-...
1 commit
# 285,228
React
Postgre...
Redux
HTML
1 commit
# 157,569
Linux
React
nextjs
Redux
1 commit
# 54,418
Google
python-...
Rails
ionic
1 commit
# 520,361
JavaScr...
Node.js
resolve...
node
1 commit
# 49,701
Ember
datadog
Applica...
trojans
1 commit
# 16,307
Ruby
Rails
C++
IPFS
1 commit
# 704,961
JavaScr...
1 commit

copyfiles Build Status

copy files easily

Install

npm install copyfiles -g

Command Line

  Usage: copyfiles [options] inFile [more files ...] outDirectory

Options: -u, --up slice a path off the bottom of the paths [number] -a, --all include files & directories begining with a dot (.) [boolean] -f, --flat flatten the output [boolean] -e, --exclude pattern or glob to exclude (may be passed multiple times) -E, --error throw error if nothing is copied [boolean] -V, --verbose print more information to console [boolean] -s, --soft do not overwrite destination files if they exist [boolean] -F, --follow follow symbolink links [boolean] -v, --version Show version number [boolean] -h, --help Show help [boolean]

copy some files, give it a bunch of arguments, (which can include globs), the last one is the out directory (which it will create if necessary). Note: on windows globs must be double quoted, everybody else can quote however they please.

copyfiles foo foobar foo/bar/*.js out

you now have a directory called out, with the files foo and foobar in it, it also has a directory named foo with a directory named bar in it that has all the files from foo/bar that match the glob.

If all the files are in a folder that you don't want in the path out path, ex:

copyfiles something/*.js out

which would put all the js files in

out/something
, you can use the
--up
(or
-u
) option
copyfiles -u 1 something/*.js out

which would put all the js files in

out

you can also just do -f which will flatten all the output into one directory, so with files ./foo/a.txt and ./foo/bar/b.txt

copyfiles -f ./foo/*.txt ./foo/bar/*.txt out

will put a.txt and b.txt into out

if your terminal doesn't support globstars then you can quote them

copyfiles -f ./foo/**/*.txt out

does not work by default on a mac

but

copyfiles -f "./foo/**/*.txt" out

does.

You could quote globstars as a part of input:

bash
copyfiles some.json "./some_folder/*.json" ./dist/ && echo 'JSON files copied.'

You can use the -e option to exclude some files from the pattern, so to exclude all all files ending in .test.js you could do

copyfiles -e "**/*.test.js" -f ./foo/**/*.js out

Other options include

  • -a
    or
    --all
    which includes files that start with a dot.
  • -s
    or
    --soft
    to soft copy, which will not overwrite existing files.
  • -F
    or
    --follow
    which follows symbolinks

copyup

also creates a

copyup
command which is identical to
copyfiles
but
-up
defaults to 1

Programic API

var copyfiles = require('copyfiles');

copyfiles([paths], opt, callback);

takes an array of paths, last one is the destination path, also takes an optional argument which the -u option if a number, otherwise if it's

true
it's the flat option or if it is an object it is a hash of the various options (the long version e.g. up, all, flat, exclude, error, verbose, follow, and soft)

Tilde support for home directory

when the src/dest path start with tilde for home directory under windows, please make sure -u or -f is added in options or use copyup command. if not you will get

Error: Illegal characters in path.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.