关于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),则复制连结文件属性而非档案本身;即如果源是链接,则复制链接

-f(force):为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;

-i(interactive):若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!

-l(link)(link files instead of copying) :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;即如果源是链接,则复制链接所指向的文件;

-P(no-dereference) :保持链接:如果源是链接,则复制链接

-p (不改变源的属主和属组):连同档案的属性一起复制过去,而非使用预设属性;

什么是预设属性:本来谁复制的,文件的属主和属组就是谁;

-r(recursive):递归持续复制,用于目录的复制行为;

-s(symbolic) :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;

-u(update)   :若 destination 比 source 旧才更新 destination ;或者是destination file is missing


1、问题

    问题1:能不能把一个文件复制成另一个文件,一个文件复制成多个文件,多个文件复制成一个文件。即Src:Dest = 1:1,1:n,n:1,n:n

    归纳1:目标destination只有一个,可以是文件也可以是目录。因此只存在Src:Dest=1:1和n:1这两种情况,但多个源的情况下(即Src:Dest=n:1时),目标(Dest)只能是目录,否则报错。

    问题2:什么是符号链接?

答:相当于一个快捷方式,本身不存在,只是指向另一个文件的路径。

如果源是链接,复制的不是链接而是链接指向的那个文件

问题3:cp命令,默认不能复制目录;那么如何实现复制目录

答:# cp -r(recursive递归):

递归持续复制,用于目录的复制行为;

# cp -r /etc/init.d /tmp/passwd (目录到文件?)该命令能否执行?

指令解读:Src为目录,Dest为文件;Src:Dest=1:1

在没有r参数的情况下,是不允许执行的。

该指令执行

2、范例

一个源

范例1: # cp /etc/passwd /tmp,什么意思?

答:Src为文件,Dest为目录;

指令解读:

将/etc路径下的文件passwd,复制到目标目录/tmp下,复制后的文件名仍为passwd。

范例2: # cp /etc/passwd /tmp/test,什么意思?

答:Src为文件,Dest为目录or文件;

指令解读:

1、当Dest(test)为文件时:

则将文件passwd复制到目录/tmp下:

1.1 如果test不存在,则复制文件以test为文件名保存在/tmp目录下;

1.2 如果test已经存在,则询问用户是否用新复制的文件覆盖原来的test文件;

2、当Dest(test)为目录时:

则将文件passwd,复制到目录/tmp下,复制后的文件名仍为passwd。

     

多个源

范例3:# cp /etc/passwd /etc/issue /etc/inittab /tmp/abc,什么意思?

答:Src:Dest=N:1;Src为文件,Dest为文件or目录

指令解读:

1、当Dest(abc)为文件时:

问题来了,多个文件可以存放在一个文件中吗?

答案是不行,当用户试图将多个文件存放于一个文件中,系统会报错提示目标abc不是一个目录。

2、当Dest(abc)为目录时:

则将源文件(passwd,issue,inittab)复制到目标目录/tmp/abc下,并以原文件名保存文件。

时间: 2024-10-10 15:41:47

关于Linux 中cp命令的相关文章

Linux 中 cp 命令(文件复制)

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误. 语法 cp(选项)(参数) 选项 -a:此参数的效果和同时指定"-dpR"参数相同: -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录: -f:强行复制文件或目录,不论目标文件或目录是否已存

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中find命令详解

http://blog.csdn.net/pipisorry/article/details/39831419 问题: linux中find命令查找时不包含某些目录 find 命令忽略某个或多个子目录的方法 在linux中用find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prune 参数来进行过滤,要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用. eg: [email protected]:/tmp1#find ./ -type f    #/tmp1目录下所

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

Linux中的命令 make -f 是什么意思

出处:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246091d21a8e07b770703a79b273b46e5540faab66d2369543de1cc8edb1183fa8f2d2d832735761892044f934fa0951d79866a875a98b86fe3ad863084afa2c4af5344bb55127bf0afd803570

linux中执行命令权限不够怎样处理

在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令

linux中查找命令find、locate、whereis、which、type区别

linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/var/lib/locatedb)文件不同,find查找磁盘空间 find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件