Linux系统中用于复制的cp和scp命令使用解析

使用cp命令:cp[选项]...[-T]目标文件源文件或:cp[选项]...源文件...目录或:cp[选项]...-t目录源文件...将一个源文件复制到目标文件或将多个源文件复制到目标目录。

长选项所需的参数对于短选项也是必需的。
-a,--archivess-dR--preserve=all--backup[=CONTROL为每个现有目标文件创建备份-b与--backup类似,但不接受参数--copy-content在递归处理期间复制特殊文件的内容-d相当于--no-dereference--preserve=links-f,--force如果目标文件无法打开,则将其删除并重试(存在时无需选择此选项-n选项)-i,--interactive重写前询问(禁用之前的-n选项)-H遵循源文件中的命令行符号链接-l,--link链接文件而不复制-L,--dereference始终遵循符号链接-n,--no-clobber不要覆盖现有文件(禁用之前的-i选项)-P,--no-dereference不要跟踪链接源文件中的符号-p相当于--preserve=mode、ownership、timestamp--preserve[=列表属性保存指定的属性(默认:mode、ownership、timestamp)以及如果可能的话附加属性:environment、link、xattr,ETC。
csameas--preserve=context--sno-preserve=属性列表不保留指定的文件属性--parent在复制之前将源文件路径中的所有目录创建到目标目录-R,-r,--recursive递归复制目录及其内部的所有内容子目录--reflink[=WHEN]控制克隆/CoW复制。
请看下面的内容。
--remove-destination在尝试打开目标文件之前删除现有的目标文件(与--force选项结合使用)--sparse=WHEN控制稀疏文件的创建方式--strip-trailing-slashes删除文件夹中的所有源文件/斜杠-s参数在目录末尾,--symbolic-link创建只创建符号链接而不复制文件-S,--suffix=suffix自己指定备份文件后缀-t,--target-directory=directory将所有参数指定的源文件/目录复制到目标目录-T,--no-target-directory将目标目录视为普通文件-u,--仅当eSOURCE比目标文件新或文件目标时更新复制ismissing-v,--verboseexplainwhatisbeingdone-x,--one-file-systemstayonthisfilesystem-Z,--context=CONTEXTsetsecuritycontextofcopytoCONTEXT--help显示此帮助消息并退出--version显示版本信息并退出

默认情况下,仅通过简单的方法判断源文件的稀有性,目标文件对应的Object文件也被认为稀有。
这是因为默认使用--sparse=auto参数。
如果显式使用--sparse=always参数,则无论源文件是否包含足够长的0序列,目标文件都将创建为稀疏文件。
使用--sparse=never参数禁用稀疏文件的创建。

当指定--reflink[=always]参数时,进行轻拷贝,即仅当数据块被修改时才进行拷贝。
如果复制失败或还指定了--reflink=auto,则恢复标准复制模式。

除非使用指定,否则备份文件均以“~”为后缀--suffix选项或SIMPLE_BACKUP_SUFFIX环境变量。
可以通过--backup选项或VERSION_CONTROL环境变量选择版本控制方法。
以下是可用的变量值:

none,inactive没有备份(即使使用了--backup选项)编号,t备份文件按现有编号排序,如果编号备份文件已存在则为零,则使用编号,否则使用简单的普通预订,绝不是普通预订

有一种特殊情况:如果同时指定--force和--backup选项,并且源文件和目标文件是同一个通用现有文件,则cp将备份源文件。

示例:

复制以下代码:[root@localhostwww]#cp-ptest.rb/home/test#将test.rb复制到test目录下,保留原文件的属性[root@localhostwww]#cp-rDir//home/test#复制dir目录到test目录[root@localhostwww]#cp-frDir/*/home/test#强制复制Dir下所有文件到test目录[root@localhostwww]#cptest.rb{,.bak}#备份test.rb并在末尾添加后缀.bak

scp命令SCP命令语法scp[-1245BCpqrv][-ccipher][Fssh_config][-Identity_file][-llimit][-ossh_option][-Pport][-Sprogram][[user@]host1:]file1[...[[suer@]host2:]file2

SCCommandP告诉scp在主机之间复制文件。
它使用ssh(1)进行数据传输。
并具有相同的认证和保证。
scp将在身份验证期间要求输入密码所有文件可能需要服务器和用户特定的描述来指示文件将复制到的服务器。
允许在两个远程连接的服务器之间复制文件。

SCP命令选项

-1强制scp使用协议1

-2强制scp使用协议2

-4scp使用IPV4URL

-6强制scp使用IPV6URL

-B选择批处理模式(防止输入密码)

-C允许压缩。
在ssh(1)中指定-C以启用压缩

-ccipher选择加密数据传输的密码。
此选项直接传递给ssh(1)

-fssh_config为ssh设置变量用户配置此选项直接传递给ssh(1)选项

-iidentity_file一个文件,该文件是通过RSA认证读取私有密码。
该选项可以直接传递给ssh(1)

-llimate限制传输带宽,即速度为Kbit/s

-ossh_option可以将配置格式传递给ssh_config在ssh中。
此模式对于描述没有独立SCP文件开关的SCP非常有用。
选项如下。
它们的值请参考ssh_config(5)

-Pport指定远程连接的端口。
注意该选项必须用大写字母书写。
因为-p已经预留了次数和模式

-Sprogram指定加密程序。
该程序必须能够读取所有ssh(1)选项。

-p指定原始文件的修改次数、链接数量和模式

-q禁用进度参数

-r递归复制所有文件

-Sprogram指定加密程序。
该程序必须能够读取所有ssh(1)选项。

-V冗余模式。
让scp和ssh(1)打印其故障排除信息。

示例:

复制以下代码:[root@localhostwww]#scp-rtank@192.16.1.108:/var/www/blog/home/www/blog#以tank用户登录并将服务器文件夹复制到本地[root@localhostwww]#scp/home/www/blog/index.php192.16.1.108:/var/www/blog#复制本地文件到服务器填写用户当前默认用户

使用指定端口从本地复制到远程服务器

复制代码如下:[root@localhosttest]#scp-P20022-r../vhost/zhuqiang@192.168.0.200:/home/test/

linuxcp命令

cp命令的-rf选项

cp命令是Linux系统中用于复制文件和目录的命令。
-rf选项是cp命令的两个选项的组合。
“-r”代表递归复制,用于复制一个目录及其子目录下的所有文件;“-f”表示强制复制,即使目标文件已经存在,也会被覆盖而不提示。

详细说明:

选项1.-r或-R:

此选项允许用户复制目录。
当您指定一个目录作为源时,使用此选项可确保该目录及其中的所有文件和子目录都复制到目标位置。
这是递归复制的一个示例,这意味着从顶层目录到更深层次的文件,在所有级别上重复该过程。

选项2.-f:

该选项表示强制复制。
当目标位置中已存在同名文件时,不带-f选项的cp命令通常会询问用户是否应覆盖目标文件。
但是,如果使-f选项,cp命令将无条件覆盖目标文件,且不给出任何提示。
这对于避免用户干预的自动化脚本和批处理操作非常有用。

3.常见用法:

当您需要强制将目录及其所有内容复制到另一个位置,并且想要覆盖任何现有文件时,可以使用cp-rf选项。
从事起。
这在备份、迁移或覆盖安装等场景中特别有用。
例如,当您需要将包含许多文件和子目录的目录复制到新位置并确保所有内容都正确复制且不受任何现有文件干扰时,-rf选项非常有用。

一般来说,cp-rf命令提供了一在Linux下高效且不间断地复制目录及其内容的方法,特别是在需要覆盖现有文件时。
使用此命令时,用户应确保了解其对文件系统的潜在影响,尤其是在处理重要数据时。

linux的cp命令详解

Linux系统中的cp命令是什么?下面是cp命令的详细介绍:1、语法:cp[OPTION]...SOURCE...DIRECTORYcp[OPTION]...-tDIRECTORYSOURCE...这两种语法的效果是一样的,都代表SOURCE文件放入DIRECTORY目录中。
2、使用cp命令将文件复制到目录:首先我们看一下如何将文件复制到目录。
使用上面的两种语法:cpfile1file2file3dir1cp-tdir1file1file2file3。
否则该文件将被复制并重命名。
3.使用cp命令将目录复制到另一个目录:有时我们想将整个目录复制到另一个目录。
这时,我们需要添加-r或-R或--recursivecp-rdir1/选项。
dir2/注意:dir2目录必须存在,否则将执行复制该目录的命令。
4、使用cp命令将目录项复制到目录中:cp-rdir1dir2将整个dir1目录复制到dir2目录中,但有时我们只想将dir1目录中的内容复制到dir2目录中。
为此,请使用占位符任务。
cpdir1/*dir2,如果dir1目录下包含hello.txt和world.txt两个文件,那么dir1/*被shell扩展成dir1/hello.txt和dir1/world.txt,那上面的扩展形式命令如下cpdir1/hello.txtdir2/world.txtdir2这种形式由目录中的文件复制操作组成。
注意dir2目录必须存在,否则会报错。
5、使用cp命令复制并重命名文件:有时我们想要复制一个文件,但同时又要重命名该副本(被复制的文件)。
只要重命名的名称不存在,cp命令就可以执行此操作。
即名称cpfile1dir1/renamed_file1将当前目录下的file1复制到dir1目录下,并重命名为renamed_file1。
请注意,仅当renamed_file1不存在时才会执行文件复制和重命名操作。
如果renamed_file1存在,renamed_file1的内容将被file1的内容覆盖。
6、使用cp命令复制并重命名目录:复制并重命名目录与复制并重命名文件类似,只不过需要添加-r选项来复制目录。
cp-rdir1/dir2/renamed_dir1请注意,如果要复制并重命名renamed_dir1目录,则该目录不能存在。
如果存在,则将一个目录复制到另一个目录。
7、使用cp命令覆盖文件:上一节提到,复制文件可能会导致覆盖操作,例如:例如cpfile1file2dir1。
如果dir1目录下存在file1文件,默认会覆盖,但不会提示我们。
如果您不想这样做,可以使用以下选项。
使用-n选项,不会发生覆盖。
您可以使用-i选项询问操作员是否执行覆盖操作。
要在覆盖之前保存,请使用-b选项。
备份文件名是原始文件名加波浪号。
使用-u选项意味着仅当文件相对较新时才会发生覆盖。
8、使用cp命令备份文件:通过--suffix重新定义备份文件名后缀。
cp--suffix=.bakfile1dir1注意,如果指定了--suffix选项,则-b的含义已经包含在内,因此不需要指定-b选项。
如果Dir1目录中已存在File1文件,则创建备份文件File1.bak,然后复制该文件。
事实上,cp命令有几种用于生成备份文件的内置方法,通过--backup选项指定。
存在以下值:simple/never:备份后缀是波浪号(~)。
是标准方法。
numbered/t:备份后缀是数字,例如B.~1~。
ists/nile:如果数字备份文件已存在,则使用数字后缀,否则使用波形符后缀。
9.使用cp命令备份文件本身:$cp-bfile1file1cp:file1和file1是同一个文件。
该命令的意思是复制file1到当前目录下的file1,-b选项意思是创建备份文件。
但是,该命令无法执行。
您可以使用-f$cp-vfbhello.chello.chello.c-hello.c~选项强制它运行