导航:首页 > 程序命令 > cp命令详解

cp命令详解

发布时间:2022-02-22 04:55:22

linux文件的复制、删除和移动命令是.

linux 下的复制删除和移动的命令分别是:

cprm 和 mv

详解如下:

  1. Linux 的cp命令

功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
参数:
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或 --link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或 --verbose 显示执行过程
-V <备份方式> 或 --version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增
2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
--help 显示在线帮助
--sparse=<使用时机> 设置保存希疏文件的时机
--version 显示版本

示例:
.复制文件,只有源文件较目的文件的修改时间新时,才复制文件
cp -u -v file1 file2

.将文件file1复制成文件file2
cp file1 file2

.采用交互方式将文件file1复制成文件file2
cp -i file1 file2

.将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
cp -f file1 file2

.将目录dir1复制成目录dir2
cp -R file1 file2

.同时将文件file1、file2、file3与目录dir1复制到dir2
cp -R file1 file2 file3 dir1 dir2

.复制时保留文件属性
cp -p a.txt tmp/

.复制时保留文件的目录结构
cp -P /var/tmp/a.txt ./temp/

.复制时产生备份文件
cp -b a.txt tmp/

.复制时产生备份文件,尾标 ~1~格式
cp -b -V t a.txt /tmp

.指定备份文件尾标
cp -b -S _bak a.txt /tmp

  1. Linux 的rm 命令
    使用权限:任何使用者
    使用方式:rm [options] name...
    说明:删除档案及目录。
    参数:
    -i 删除前逐一询问确认。
    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    -r 将目录及以下之档案亦逐一删除。
    范例:
    删除任何C语言程式档;删除前逐一询问确认 :
    rm -i *.c
    将 Finished 子目录及子目录中任何档案删除 :
    rm -r Finished
    功能说明:删除文档或目录。
    语法:rm [-dfirv][--help][--version][文档或目录...]
    补充说明:执行rm指令可删除文档或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文档。
    参数:
    -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
    -f或--force 强制删除文档或目录。
    -i或--interactive 删除既有文档或目录之前先询问用户。
    -r或-R或--recursive 递归处理,将指定目录下的任何文档及子目录一并处理。
    -v或--verbose 显示指令执行过程。
    --help 在线帮助。
    --version 显示版本信息

  1. linux的mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。

1.命令格式:

mv[选项]源文件或目录目标文件或目录

2.命令功能:

视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

3.命令参数:

-b:若需覆盖文件,则覆盖前先行备份。

-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i:若目标文件(destination)已经存在时,就会询问是否覆盖!

-u:若目标文件已经存在,且source比较新,才会更新(update)

-t :--target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

说明:

-b不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。

--backup该选项指定如果目标文件存在时的动作,共有四种备份策略:

1.CONTROL=none或off:不备份。

2.CONTROL=numbered或t:数字编号的备份

3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:

执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。

4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

㈡ linux cp命令,怎么跳过相同的文件

使用cp命令的-n参数。

㈢ LINUX里面的cat命令和cp命令有啥不同点求说明

cat a.txt > b.txt这句话的意思是:显示a.txt文件里的内容然后导入到b.txt;而cp a.txt b.txt意思是:将a.txt的名字修改为吧b.txt

㈣ linux中cp命令的设计者为什么要在拷贝目录时用-r参数

Why is -r recursive necessary

在文件系统工作的方式中,目录实际上不是包含文件的文件夹,而是包含连接到它的“子”文件的inode指针的文件。这意味着,从文件系统的角度来看,文件是一个文件,但是目录只是一个包含连接文件列表的文件。

因此,从命令行的角度来看,这样做:

$ cp dir1 Dir1

基本上意味着将名为dir1的文件复制到名为Dir1的新文件。就文件系统而言,dir1只是一个文件;只有当文件系统真正检查dir1以查看那一堆位的实际情况时,它才是“目录”这一事实才会显现出来。

r标志告诉文件系统递归地滚动文件/目录树,并将任何&所有可能是该文件的“子”的内容复制到新的位置。

至于为什么这看起来是多余的或冗余的,这实际上可以归结为处理文件系统的历史方法。以及创建一个系统,使其不受所有类型的用户相关错误的影响;偶然的和有意的。

意思是,假设你有一个~/bin文件在你的主目录中,你想复制,但不小心漏掉了~——因为你是人,会犯错误——所以它是这样的/bin:

cp /bin/ ~ / _of_bin

由于/bin的“安全网”是一个目录,并且需要-r标志,您可以避免意外地将系统的整个二进制根复制到主目录中。如果这个安全网不存在,就会发生一场小的——或者可能是大的——灾难。

这里的逻辑是,在前gui(图形用户界面)的时代,逻辑/行为约定需要被设置,以避免用户创建可能导致系统死亡的错误。使用-r标志是其中之一。

如果这看起来是多余的,那么只需看看现代GUI系统,就可以将其置于Linux文件系统之上。GUI通过允许轻松地拖放文件和目录来解决基本的用户问题。

但在基于文本的界面领域中,该领域中的许多“用户体验”基本上都是基于逻辑的、基于hueristicl的障碍,这些障碍有助于控制用户,从而避免潜在的灾难。

同样,这也是为什么Linux/Unix文件系统没有默认设置的777权限和sudo权限,以及当用户设置777权限或授予所有人sudo权限时,真正的系统管理员会畏缩不前的原因。这些是确保系统稳定和尽可能“用户证明”的基本工作;任何急于缩短这些惯例的人都很可能在不知情的情况下对他们的系统造成损害。

附加信息:Unix堆栈交换站点上的另一个答案很好地解释了为什么目录的非递归副本存在问题;重点是我的。

嗯,没有-R标志,只能复制文件,因为不太常见的情况是,有人想非递归复制一个目录:非递归复制只会导致目录的第二个名称,直接指向相同的目录结构。因为这很少是人们想要的,实际上有一个单独的程序来做这个(ln),不允许目录的非递归副本。

因此,如果一个目录实际上是一个包含inode项的文件,那么直接复制该文件就相当于硬链接的工作方式。这不是任何人想要的。

㈤ linux中文件is a directory怎么往里面复制内容

1、用cp命令可以复制全部文件。
1)、复制的时候记得使用通配符*,*表示所有文件。
2)、复制的时候记得-R参数,即递归复制,可以将源文件夹下的子文件夹中的文件一并复制。

2、示例:将当前用户home目录下的doc文件夹下的所有文件复制到Downloads目录中。

3、cp命令使用详解:
1)、用法:cp [选项]... [-T] 源文件 目标文件

或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。

2)、长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数

㈥ red hat linux下cp -rf的-rf详细意思是

red hat linux下cp -rf的-rf 意思是强制递归复制。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-f:覆盖已经存在的目标文件而不给出提示。

例如:使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:

$ cp –rf test/ newtest



(6)cp命令详解扩展阅读

Linux cp命令的参数说明:

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l:不复制文件,只是生成链接文件。

㈦ Linux cp命令,怎么跳过相同的文件

1、使用cp命令的-n参数即可跳过相同的文件 。

2、cp命令使用详解:
1)、用法:cp [选项]... [-T] 源文件 目标文件

或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。

2)、长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
---contents 在递归处理是复制特殊文件内容
-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=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-c same as --preserve=context
--sno-preserve=属性列表 不保留指定的文件属性
--parents 复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。
--remove-destination 尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
--sparse=WHEN 控制创建稀疏文件的方式
--strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有参数指定的源文件/目录
复制至目标目录
-T, --no-target-directory 将目标目录视作普通文件
-u, --update 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, --context=CONTEXT set security context of to CONTEXT
--help 显示此帮助信息并退出
--version 显示版本信息并退出

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

4)、当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。

5)、备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:

none, off 不进行备份(即使使用了--backup 选项)
numbered, t 备份文件加上数字进行排序
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份

6)、有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份。

㈧ 怎么把linux 系统 拷到另外一个

1、用cp命令可以复制全部文件。1)、复制的时候记得使用通配符*,*表示所有文件。
2)、复制的时候记得-R参数,即递归复制,可以将源文件夹下的子文件夹中的文件一并复制。

2、示例:将当前用户home目录下的doc文件夹下的所有文件复制到Downloads目录中。

3、cp命令使用详解:
1)、用法:cp [选项]... [-T] 源文件 目标文件

或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。

2)、长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
---contents 在递归处理是复制特殊文件内容
-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=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-c same as --preserve=context
--sno-preserve=属性列表 不保留指定的文件属性
--parents 复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。
--remove-destination 尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
--sparse=WHEN 控制创建稀疏文件的方式
--strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有参数指定的源文件/目录
复制至目标目录
-T, --no-target-directory 将目标目录视作普通文件
-u, --update 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

㈨ linux系统中 ,cp命令不能用于复制目录但可以复制文件,能不能详细给解释一下

cp -rf 目录名 目录路径
cp (复制档案或目录)

参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即‘快捷方式’档案;
-u :若 destination 比 source 旧才更新 destination !

㈩ linux 系统下的文件能复制出来吗

1、用cp命令可以复制全部文件。
1)、复制的时候记得使用通配符*,*表示所有文件。
2)、复制的时候记得-R参数,即递归复制,可以将源文件夹下的子文件夹中的文件一并复制。

2、示例:将当前用户home目录下的doc文件夹下的所有文件复制到Downloads目录中。

3、cp命令使用详解:
1)、用法:cp [选项]... [-T] 源文件 目标文件

或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。

2)、长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
---contents 在递归处理是复制特殊文件内容
-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=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-c same as --preserve=context
--sno-preserve=属性列表 不保留指定的文件属性
--parents 复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如。
--remove-destination 尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
--sparse=WHEN 控制创建稀疏文件的方式
--strip-trailing-slashes 删除参数中所有源文件/目录末端的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有参数指定的源文件/目录
复制至目标目录
-T, --no-target-directory 将目标目录视作普通文件
-u, --update 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, --context=CONTEXT set security context of to CONTEXT
--help 显示此帮助信息并退出
--version 显示版本信息并退出

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

4)、当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。

5)、备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:

none, off 不进行备份(即使使用了--backup 选项)
numbered, t 备份文件加上数字进行排序
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份

6)、有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份。

阅读全文

与cp命令详解相关的资料

热点内容
pdf签名adobe 浏览:403
在家无聊解压图片 浏览:530
单片机拨打电话 浏览:432
单片机问题解说 浏览:786
我的世界手机版命令方块零重力 浏览:689
解压游戏无广告最新版 浏览:419
如何下载养生堂app 浏览:240
oracle中文乱码java 浏览:937
儿童编程实践课小结 浏览:482
APP是如何实现数据获取的 浏览:522
买车子看什么app 浏览:832
美国单片机 浏览:815
如何在app上架自己的游戏 浏览:461
安卓系统车载导航支持什么格式u盘 浏览:626
天翼云服务器怎么打开端口 浏览:911
如何启用对服务器远程的访问 浏览:778
程序员环境分析 浏览:818
tsp算法是数据挖掘算法吗 浏览:674
编译原理好处 浏览:824
怎么买服务器主机 浏览:178