Linux 中 cp 命令(文件复制)

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

语法

cp(选项)(参数)

选项

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

参数

  • 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项
  • 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

cp ../mary/homework/assign .

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

将文件file复制到目录/usr/men/tmp下,并改名为file1

cp file /usr/men/tmp/file1

将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh

cp -r /usr/men /usr/zh

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh

cp -i /usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。

原文地址:https://www.cnblogs.com/uncle-qi/p/9359741.html

时间: 2024-10-15 23:54:32

Linux 中 cp 命令(文件复制)的相关文章

关于Linux 中cp命令

0.cp命令 (复制档案或目录) 1.# cp [-adfilprsu] 来源档(source) 目的档(destination) 2.# cp [options] source1 source2 source3 .... directory 参数: -a(archive):相当于 -pdr 的意思:不改变源的所有属性,用于归档复制,常用于备份:= --backup -d(no-dereference):若来源文件为链接文件的属性(link file),则复制连结文件属性而非档案本身:即如果源是

linux cp命令批量复制不提示方法

功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 参数: -a 或 --archive     此参数的效果和同时指定"-dpR"参数相同 -b 或 --backup      删除.覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录.假如没有

老男孩教育每日一题-2017-04-18:命令风暴:如何快速删除Linux中海量小文件?

老男孩教育每日一题-2017-04-18:命令风暴:如何快速删除Linux中海量小文件? 今天是老男孩教育每日一题陪伴大家的第30天. 对于题目和答案的任何疑问,请在博客评论区留言. 往期题目索引 http://lidao.blog.51cto.com/3388056/1914205

linux中touch命令参数修改文件的时间戳(转)

linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法: touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名) example: touch file1.txt 更新file1.txt的存取和修改时间 touch -c file1.txt 如果file1.txt不存在,不创建文件 touch -r ref_file file1.t

Linux中常用命令 <一>

本笔记中记录的命令来源于 <Linux C 编程实战> ----------------------------------------------------------------------------- 1.查看当前目录命令 pwd 2.改变当前目录 cd 3.显示目录或文件信息命令 ls 格式: ls [选项] <目录或文件名> 主要选项如下: -a 显示所有的文件和目录 -l  以长格式显示文件信息 -t 将结果按修改时间进行排序,新的文件或目录在前面 -R 递归列出目

对Linux的cp命令的思考

关于cp命令: 1.将一个文件复制到一个目录中,并保持原文件名. [[email protected] test]# ls -l total 44 drwxr-xr-x 2 root root 4096 May 4 20:56 d1 drwxr-xr-x 4 root root 4096 May 3 23:00 d2 -rw-r--r-- 1 root root 0 May 4 20:54 dir1 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26

linux 中mv命令

mv 命令是一个与cp类似的命令,但是它并非创建文件或目录的复制品/副本.不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了.来看一下 mv 命令在日常操作中的一些例子. 1.移动文件 移动文件时需要注意的是文件的源地址和目标地址必须不同.这里有个例子,想要将file_1.txt文件从当前目录移动到其它目录,以/home/pungki/为例,语法应该如下: $ mv file_1.txt /home/pungki/office mv command 如我们所见,当我们

Linux培训教程 linux中nl命令使用介绍

nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能.兄弟连linux培训 小编介绍一下:linux中 nl 命令使用介绍. 1.命令格式: nl [选项]... [文件]... 2.命令参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行

Linux中exec命令相关

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部 命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child