博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux cp命令:复制文件或目录
阅读量:4188 次
发布时间:2019-05-26

本文共 1736 字,大约阅读时间需要 5 分钟。

目录


 

描述

cp命令用来完成复制的任务。它可以将系统中的文件或目录从一个位置复制到另一个位置。

 

使用示例

复制文件

在最基本的用法里,cp命令需要两个参数,源文件和目标文件:

cp 

此时cp命令将源文件(source_file)复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。

例如,将目录中的rsa.conf复制到当前目录下,新的文件名叫做rsa_clone.ini:

$ lltotal 8drwxr-xr-x   3 root  staff    96  2 24 18:13 ./drwxr-xr-x+ 86 root  staff  2752  3  8 18:42 ../-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf$ cp rsa.conf rsa_clone.ini$ lltotal 16drwxr-xr-x   4 root  staff   128  3  8 18:42 ./drwxr-xr-x+ 86 root  staff  2752  3  8 18:42 ../-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf-rw-r--r--   1 root  staff    48  3  8 18:42 rsa_clone.ini

 

避免覆盖

如果复制后的新文件名称在目标目录中已存在,cp命令会覆盖掉原来的文件:

$ lltotal 16drwxr-xr-x   4 root  staff   128  3  8 18:42 ./drwxr-xr-x+ 89 root  staff  2848  3 23 21:33 ../-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf-rw-r--r--   1 root  staff    48  3  8 18:42 rsa_clone.ini$ cp rsa.conf rsa_clone.ini$ lltotal 16drwxr-xr-x   4 root  staff   128  3  8 18:42 ./drwxr-xr-x+ 89 root  staff  2848  3 23 21:33 ../-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf-rw-r--r--   1 root  staff    48  3 23 21:33 rsa_clone.ini

可以看到这种场景下cp命令不会报错,而是直接将原来的rsa_clone.ini文件覆盖掉了(最后修改时间发生了变化)。

加上-i选项可以强制shell询问是否需要覆盖已有文件。如果不回答y,文件复制过程中断:

$ cp -i rsa.conf rsa_clone.inioverwrite rsa_clone.ini? (y/n [n]) nnot overwritten

 

总结:

使用如下的命令可以强制shell检查复制文件是否会造成覆盖已有文件的现象出现:

cp -i 

 

将文件复制到现有目录中

使用如下的命令可以将一个文件复制到一个目录中:

cp 

例如:

$ cp rsa.conf sub$ ls -l sub/total 8-rw-r--r--  1 root  staff  48  3 23 21:57 rsa.conf

新文件就在sub目录中了,和源文件同名。

 

查阅cp文档

使用man cp查阅cp文档

man cp

 

递归复制目录

使用 cp -R <目录名> <新目录名> 可以递归地复制整个目录的内容。

cp -R 

 

例如将目录d1复制,新复制后的目录名为d2

$ cp -R d1 d2

💡提示:在目录d2事先并不存在,它是被cp -R命令创建的。在新的目录d2中,所有文件都有了新的日期。d2目录现在已经成为了d1目录的完整副本。

 

转载地址:http://mbsoi.baihongyu.com/

你可能感兴趣的文章
ACM UVa算法题209 Triangular Vertices的解法
查看>>
另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
查看>>
一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
查看>>
今天David Solomon的为期三天的Windows Internal培训刚结束
查看>>
转贴:Mark Russinovich的Inside Vista Kernel系列文章,讲到了Vista内核的调度,IO,内存管理,缓存,事务处理,安全等众多新特性
查看>>
转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
查看>>
如何知道可执行文件是32-bit还是64-bit
查看>>
.NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
查看>>
Microsoft Silverlight正式发布
查看>>
国际化编程中Locale相关概念的一些解释
查看>>
PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
查看>>
“妖精”团队———阿里巴巴
查看>>
迟到的感谢——2006最有价值博客的候选人(& 个人回顾)
查看>>
第29回 软件质量度量
查看>>
IT 2007预言
查看>>
怎样让.Net2.0的Membership使用已存在的Sql Server2000/2005数据库
查看>>
ASP.NET2.0 文本编辑器FCKeditor使用方法详解
查看>>
常见的 Web 项目转换问题及解决方案
查看>>
VS2005中使用ClickOnce 部署应用程序的升级
查看>>
Visual Studio2005下配置及运行NUnit
查看>>