Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CP(1)				 User Commands				 CP(1)

NAME
       cp - copy files and directories

SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE...	DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Copy SOURCE to DEST, or multiple	SOURCE(s) to DIRECTORY.

       Mandatory  arguments  to	 long  options are mandatory for short options
       too.

       -a, --archive
	      same as -dR --preserve=all

       --attributes-only
	      don't copy the file data,	just the attributes

       --backup[=CONTROL]
	      make a backup of each existing destination file

       -b     like --backup but	does not accept	an argument

       --copy-contents
	      copy contents of special files when recursive

       -d     same as --no-dereference --preserve=links

       --debug
	      explain how a file is copied.  Implies -v

       -f, --force
	      if an existing destination file cannot be	opened,	remove it  and
	      try  again  (this	 option	 is ignored when the -n	option is also
	      used)

       -i, --interactive
	      prompt before overwrite (overrides a previous -n option)

       -H     follow command-line symbolic links in SOURCE

       -l, --link
	      hard link	files instead of copying

       -L, --dereference
	      always follow symbolic links in SOURCE

       -n, --no-clobber
	      (deprecated) silently skip existing files.  See also --update

       -P, --no-dereference
	      never follow symbolic links in SOURCE

       -p     same as --preserve=mode,ownership,timestamps

       --preserve[=ATTR_LIST]
	      preserve the specified attributes

       --no-preserve=ATTR_LIST
	      don't preserve the specified attributes

       --parents
	      use full source file name	under DIRECTORY

       -R, -r, --recursive
	      copy directories recursively

       --reflink[=WHEN]
	      control clone/CoW	copies.	See below

       --remove-destination
	      remove each existing destination file before attempting to  open
	      it (contrast with	--force)

       --sparse=WHEN
	      control creation of sparse files.	See below

       --strip-trailing-slashes
	      remove any trailing slashes from each SOURCE argument

       -s, --symbolic-link
	      make symbolic links instead of copying

       -S, --suffix=SUFFIX
	      override the usual backup	suffix

       -t, --target-directory=DIRECTORY
	      copy all SOURCE arguments	into DIRECTORY

       -T, --no-target-directory
	      treat DEST as a normal file

       --update[=UPDATE]
	      control	  which	   existing    files	are    updated;	   UP-
	      DATE={all,none,none-fail,older(default)}

       -u     equivalent to --update[=older].  See below

       -v, --verbose
	      explain what is being done

       --keep-directory-symlink
	      follow existing symlinks to directories

       -x, --one-file-system
	      stay on this file	system

       -Z     set SELinux security context of destination file to default type

       --context[=CTX]
	      like -Z, or if CTX is specified then set the  SELinux  or	 SMACK
	      security context to CTX

       --help display this help	and exit

       --version
	      output version information and exit

       ATTR_LIST  is  a	 comma-separated  list	of  attributes.	Attributes are
       'mode' for permissions (including any ACL and xattr permissions), 'own-
       ership' for user	and group, 'timestamps'	for file  timestamps,  'links'
       for  hard  links,  'context' for	security context, 'xattr' for extended
       attributes, and 'all' for all attributes.

       By default, sparse SOURCE files are detected by a crude	heuristic  and
       the corresponding DEST file is made sparse as well.  That is the	behav-
       ior  selected  by  --sparse=auto.   Specify --sparse=always to create a
       sparse DEST file	whenever the SOURCE file contains a  long  enough  se-
       quence of zero bytes.  Use --sparse=never to inhibit creation of	sparse
       files.

       UPDATE  controls	 which existing	files in the destination are replaced.
       'all' is	the default operation when an --update option  is  not	speci-
       fied,  and  results  in all existing files in the destination being re-
       placed.	'none' is like the --no-clobber	option,	in that	 no  files  in
       the  destination	 are replaced, and skipped files do not	induce a fail-
       ure.  'none-fail' also ensures no files are replaced  in	 the  destina-
       tion,  but  any	skipped	 files	are  diagnosed	and  induce a failure.
       'older' is the default operation	when --update is  specified,  and  re-
       sults  in  files	being replaced if they're older	than the corresponding
       source file.

       When --reflink[=always] is specified, perform a lightweight copy, where
       the data	blocks are copied only when modified.  If this is not possible
       the copy	fails, or if --reflink=auto is specified, fall back to a stan-
       dard copy.  Use --reflink=never to ensure a standard copy is performed.

       The  backup  suffix  is	'~',  unless  set  with	  --suffix   or	  SIM-
       PLE_BACKUP_SUFFIX.   The	version	control	method may be selected via the
       --backup	option or through the  VERSION_CONTROL	environment  variable.
       Here are	the values:

       none, off
	      never make backups (even if --backup is given)

       numbered, t
	      make numbered backups

       existing, nil
	      numbered if numbered backups exist, simple otherwise

       simple, never
	      always make simple backups

       As  a  special  case,  cp  makes	 a backup of SOURCE when the force and
       backup options are given	and SOURCE and DEST are	the same name  for  an
       existing, regular file.

AUTHOR
       Written by Torbjorn Granlund, David MacKenzie, and Jim Meyering.

REPORTING BUGS
       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT
       Copyright  (C) 2025 Free	Software Foundation, Inc.  License GPLv3+: GNU
       GPL version 3 or	later <https://gnu.org/licenses/gpl.html>.
       This is free software: you are free  to	change	and  redistribute  it.
       There is	NO WARRANTY, to	the extent permitted by	law.

SEE ALSO
       install(1)

       Full documentation <https://www.gnu.org/software/coreutils/cp>
       or available locally via: info '(coreutils) cp invocation'

GNU coreutils 9.6		 January 2025				 CP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gcp&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help