cp = copy
需要了解的基础知识
拷贝一个文件,文件的权限,文件的属主|属组,文件的大小,文件的位置,文件的内容,文件的硬链接,文件的inode会如何变化?
Linux下的文件都有哪些信息组成?
Linix下通过什么工具去查看一个信息?
CP命令操作手册翻译版
参数 | 长参数 | 类型 | 释义 |
-a | --archive | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 | |
--attributes-only | 只拷贝属性,不拷贝内容,文件的size,属主,属组,权限会因环境上下文而改变 | ||
--backup=backupmodel[simple,t|numbered,never] | 备份文件,simple模式会删除前一次存储的备份,新建一个全新的备份文件,t|numbered 如果第一次备份会为备份名,第二次备份会在末尾先增加~,大于第二次的备份名后缀为增加~N-2~ | ||
-b | 等同于cp --backup=t | ||
--copy-contents | |||
-d | 复制时保留链接。即软连接依然会被拷贝为一个软连接 | ||
-f | --force | 覆盖已经存在的目标文件而不给出提示 | |
-i | --interactive(互动,交互式的) | 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖 | |
-H | |||
-l | --link | 不复制文件,只是生成链接文件,建立硬链接 | |
-L | --dereference | ||
-n | --no-clobber | 不要覆盖已存在的文件 | |
-P | --no-dereference | ||
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 | ||
--preserve[=ATTR_LIST] | |||
| |||
--no-preserve=ATTR_LIST | |||
--parents | 复制前在目标目录创建来源文件路径中的所有目录 | ||
-R, -r | --recursive | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 | |
--reflink[=WHEN] | |||
--remove-destination | 尝试打开目标文件前先删除已存在的目的地 文件 (等同于 --force 选项) | ||
--sparse=WHEN | |||
--strip-trailing-slashes | 删除参数中所有源文件/目录末端的斜杠 | ||
-s | --symbolic-link | 拷贝一个文件时,无论这个文件时源文件,还是软连接都会被拷贝为一个软连接 | |
-S | --suffix=SUFFIX | 自定义文件备份的后缀 | |
-t | --target-directory=DIRECTORY | 把选中的文件copy到该目录中,格式:copy -t target_dir file_1 file_n | |
-T | --no-target-directory | ||
-u | --update | ||
-v | --verbose | 显示命令执行的详细信息 | |
-x | --one-file-system |
CP 命令操作手册原文版
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
-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
do not overwrite an existing file (overrides a previous -i option)
-P, --no-dereference
never follow symbolic links in SOURCE
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context,
links, xattr, all
-c deprecated, same as --preserve=context
--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
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing
-v, --verbose
explain what is being done
-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
By default, sparse SOURCE files are detected by a crude heuristic and the corresponding DEST file is made sparse as well.
That is the behavior selected by --sparse=auto. Specify --sparse=always to create a sparse DEST file whenever the SOURCE
file contains a long enough sequence of zero bytes. Use --sparse=never to inhibit creation of sparse files.
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 standard copy.
The backup suffix is '~', unless set with --suffix or SIMPLE_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.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report cp translation bugs to <http://translationpro‐
ject.org/team/>
Manual page cp(1) line 87 (press h for help or q to quit)
CP命令操作实践
cp -a 【完全拷贝文件|目录(递归)除Inode的所有属性】
此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合
cp -f 强制覆盖已存在的文件
cp --attributes-only 只拷贝属性[权限,属组,属主受限于上下文]
cp --backup 备份文件【权限属组和属组受限于拷贝的上下文】
cp -b 等同于cp --backup=t
copy -l 复制文件生产硬链接
copy -s 拷贝文件为软连接
copy -S 自定义文件备份的后缀
copy -t copy 文件到指定目录
命令格式:copy -t target_dir file_1 file_n