Linux系统之cp命令的基本使用
- 一、检查本地系统版本
- 二、cp命令帮助
- 三、cp命令选项解释
- 四、cp命令的日常使用
- 1.将一个文件夹拷贝到另外一个文件夹下
- 2.将一个文件夹下内容拷贝拷贝到另外一个文件夹
- 五、cp命令的注意事项
- 1.将一个文件夹拷贝到另外一个文件夹下
- 2.将一个文件夹下内容拷贝拷贝到另外一个文件夹
- 六、备份文件时常用操作
- 七、注意事项
一、检查本地系统版本
本次实践操作系统为Centos7.6,如下所示:
[root@node ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
二、cp命令帮助
在命令行终端,使用–help选项查询cp命令的帮助信息。
[root@node ~]# cp --help
Usage: cp [OPTION]... [-T] SOURCE DESTor: cp [OPTION]... SOURCE... DIRECTORYor: cp [OPTION]... -t DIRECTORY SOURCE...
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 beopened, remove it and try again (this optionis ignored when the -n option is also used)-i, --interactive prompt before overwrite (overrides a previous -noption)-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 (overridesa 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 possibleadditional 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 beforeattempting to open it (contrast with --force)--sparse=WHEN control creation of sparse files. See below--strip-trailing-slashes remove any trailing slashes from each SOURCEargument-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 newerthan the destination file or when thedestination 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 destinationfile to default type--context[=CTX] like -Z, or if CTX is specified then set theSELinux or SMACK security context to CTX--help display this help and exit--version output version information and exitBy 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 backupsexisting, nil numbered if numbered backups exist, simple otherwisesimple, never always make simple backupsAs 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/>
For complete documentation, run: info coreutils 'cp invocation'
三、cp命令选项解释
- cp命令常用选项解释如下所示:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
四、cp命令的日常使用
1.将一个文件夹拷贝到另外一个文件夹下
[root@node ~]# cp -r /etc/ /test/
[root@node ~]# ll /test/
total 12
drwxrwxrwx. 2 root root 6 Oct 27 13:10 dir01
drwxrwx---. 2 root root 6 Oct 27 13:10 dir02
d------rwx. 2 root root 6 Oct 27 13:10 dir03
drwxr-xr-x 146 root root 8192 Nov 12 22:56 etc
2.将一个文件夹下内容拷贝拷贝到另外一个文件夹
[root@node ~]# mkdir /home/{test01,test02}
[root@node ~]# touch /home/test01/file1
[root@node ~]# cp -r /home/test01/* /home/test02/
[root@node ~]# ll /home/test02/
total 0
-rw-r--r-- 1 root root 0 Nov 12 23:02 file1
[root@node ~]#
五、cp命令的注意事项
1.将一个文件夹拷贝到另外一个文件夹下
以下4种方法都是将test01/目录及其下面递归的子目录和文件都拷贝到到另一个文件夹下
cp -r /home/test01 /home/test02
cp -r /home/test01 /home/test02/
cp -r /home/test01/ /home/test02
cp -r /hometest01/ /home/test02/
2.将一个文件夹下内容拷贝拷贝到另外一个文件夹
以下2种方法都是讲将一个文件夹下内容拷贝拷贝到另外一个文件夹下面
cp -r /hometest01/* /home/test02/
cp -r /hometest01/* /home/test02
六、备份文件时常用操作
递归复制,复制的数据会保留原有数据的时间戳等信息(具体:时间戳+所有权+复制链接文件属性而非文件本身)
[root@node ~]# cp -a /etc/ /backup/
[root@node ~]# ll /backup/
total 12
drwxr-xr-x. 146 root root 8192 Nov 12 14:03 etc
[root@node ~]# ls /backup/etc/
七、注意事项
- 使用
cp
命令复制文件时,确保源文件路径正确以避免复制错误的文件。 - 复制目录时需要使用
-r
或-R
选项来递归复制整个目录内容。 - 使用
-i
选项可以防止覆盖目标位置已有的文件,会在覆盖前提示确认。 - 利用
-p
选项可以保留文件的属性,包括所有者、时间戳和权限等。 - 当执行跨分区复制时,注意
-a
选项能实现归档模式,保持所有文件特性不变。 - 使用
-v
选项可让cp
命令在操作过程中显示详细的处理信息,便于跟踪复制进度。