場景:自動部署腳本中為了部署方便,將配置文件放在服務器端,每次部署都使用服務端的配置文件覆蓋上傳上去的配置文件。

cp命令用來復制文件或者目錄,是Linux系統中最常用的命令之一。

一般情況下,shell會設置一個別名,在命令行下復制文件時,如果目標文件已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。

但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。

這說明命令行和shell腳本的執行方式有些不同。

1 命令格式

用法:

cp [選項]... [-T] 源 目的

或:cp [選項]... 源... 目錄

或:cp [選項]...-t 目錄 源...

命令功能:將源文件復制至目標文件,或將多個源文件復制至目標目錄。

2 命令參數

-a, --archive    等於-dR --preserve=all

--backup[=CONTROL    為每個已存在的目標文件創建備份

-b                類似--backup 但不接受參數

--copy-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 等

-R, -r, --recursive  復制目錄及目錄內的所有項目

3 命令實例

3.1 實例一

復制單個文件到目標目錄,文件在目標文件中不存在

命令:

cp log.log test5

輸出:

[root@localhost test]# cp log.log test5

[root@localhost test]# ll-rw-r--r-- 1 root root 0 10-28 14:48log.log

drwxr-xr-x 6 root root 4096 10-27 01:58scf

drwxrwxrwx2 root root 4096 10-28 14:47test3

drwxr-xr-x 2 root root 4096 10-28 14:53test5

[root@localhost test]# cd test5

[root@localhost test5]# ll-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log-rw-r--r-- 1 root root 0 10-28 14:53 log.log

說明:

在沒有帶-a參數時,兩個文件的時間是不一樣的。在帶了-a參數時,兩個文件的時間是一致的。

3.2 實例二

目標文件存在時,會詢問是否覆蓋

命令:

cp -i log.log test5

輸出:

[root@localhost test]# cp -i log.log test5

cp:是否覆蓋“test5/log.log”?n

[root@localhost test]# cp-ai log.log test5

cp:是否覆蓋“test5/log.log”?y

[root@localhost test]# cd test5/[root@localhost test5]# ll-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log-rw-r--r-- 1 root root 0 10-28 14:48 log.log

說明:

目標文件存在時,會詢問是否覆蓋。這是因為cp是cp -i的別名。目標文件存在時,即使加了-f標志,也還會詢問是否覆蓋。

3.3 實例三

復制整個目錄

命令:

cp -a folder1 folder2

如果沒有“-a”,會出現不能復制的情況???

-a, --archive    等於-dR --preserve=all

輸出:

目標目錄存在時:將hh目復制到 he目錄,此時he目錄存在,在he目錄的復制文件中,會包含hh這層目錄

目標目錄不存在時候:將hh目錄,復制到hg目錄中,復制前不存在hg目錄,此時不會復制hh這層目錄。

(相當於再復制一個目錄並更改目錄的名字)

說明:注意目標目錄存在與否結果是不一樣的。

目標目錄存在時,整個源目錄被復制到目標目錄里面,相當於復制目錄但名稱不變

web目錄下新建cpweb目錄,目標——將simubankweb-1025復制到cpweb目錄中

cp -a simubankweb-1025 cpweb

結果——

目標目錄不存在時候,相當於復制目錄並更名目錄

在web目錄下,目標——將simubankweb-1025目錄復制一份並重命名為simubankweb-vab

cp -a simubankweb-1025 simubankweb-vba

結果——

總結:目的目錄存在,源目錄復制后源目錄名字保持不變。

目的目錄不存在,源目錄復制后變更名稱為目的目錄。

3.4 實例四。

復制的 log.log 建立一個連結檔 log_link.log

命令:

cp -s log.log log_link.log

輸出:

4 實戰

我想把我的某個目錄下的某個文件夾復制(如:/tmp/a,啊是文件夾名稱)到某個目錄下(如:/root/a,文件夾還是叫a),請問應該怎么在命令行下操作?謝謝

CP命令

格式: CP [選項] 源文件或目錄 目的文件或目錄

選項說明:-b 同名,備分原來的文件-f 強制覆蓋同名文件-r 按遞歸方式保留原目錄結構復制文件

cp-r /tmp/a /root/a

記得有空格

linux 怎么樣復制文件夾內所有文件到另一個文件夾?

cp -Rf /home/user1/*/root/temp/

將 /home/user1目錄下的所有東西拷到/root/temp/下而不拷貝user1目錄本身。

即格式為:cp -Rf 原路徑/ 目的路徑/

mv移動某個文件夾到另外一個文件夾下

注意點:移動文件夾的話就不要再加 / 了,如下圖那樣。如果是移動文件夾下的所有文件的話就可以文件夾后面跟上 /*

cp linux ax,(轉)每天一個linux命令(8):cp 命令,復制文件和文件夾相关推荐

  1. linux time 查看cp,Linux命令:cp、time、cut、awk 、獲取文件大小命令

    最近寫了一個shell腳本,用到了cp.time.cut.awk命令,把他們的使用方法給寫下來: 1.cp和mv cp命令:用來完成文件的復制,從源文件夾復制到目標文件夾.執行后源文件夾和目標文件夾均 ...

  2. overwrite linux,在linux下的使用復制命令cp,不讓出現“overwrite”(文件覆蓋)提示的方法。(轉)...

    在linux下的使用復制命令cp,不讓出現"overwrite"(文件覆蓋)提示的方法. 一般我們在使用cp命令時加上-f選項,希望不讓出現"overwrite" ...

  3. linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...

    复制时主动创立不存在的子目录 在 Linux 中,能够应用 cp 命令的 --path 选项指定在复制的时候主动创立不存在的子目录. 例如执行上面的命令: $ cp --path java/com/s ...

  4. linux cp命令逻辑,Linux-CP命令

    CP命令: 用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目 ...

  5. linux 动态执行cp,Linux常用命令之cp、mv、rm、cat、more、head、tail、ln命令讲解

    上一章节中,我们了解到了Linux系统的最基础的几个文件处理命令,核心的是ls命令,在今天这章中,我们来继续学习Linux对于文件操作相关的一些命令,比如复制.移动.删除.查看等命令. 1.cp 命令 ...

  6. linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝

    GNU cp和GNU mv命令用于在GNU/Linux操作系统中复制和移动文件和目录.这两个命令缺少的一个特性是它们不显示任何进度条.如果复制一个大文件或目录,您就不知道完成复制过程需要多长时间,也不 ...

  7. GUN/LINUX命令之 cp mv install

    1. cp命令 复制copy命令的简写 SYNOPSIS        cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTO ...

  8. linux命令cp命令行参数,linux命令之cp命令参数及用法详解

    cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination) [root@linux ~]# cp [option ...

  9. linux命令cp -a,linux命令_ls命令与cp命令详解(一)

    linux命令_ls命令与cp命令详解(1) 最近想详细熟悉下linux命令,学习笔记记录下: 今天主要学习的是目录操作,下面给大家介绍一下今天学到的几个命令: 1.ls命令 功能:显示文件或者目录信 ...

最新文章

  1. 推荐10个能带来快感的实用windows软件,好评如潮!
  2. C++中无符号数与有符号数的转换
  3. 前端实例练习 - 动效按钮
  4. Fiber 为什么做并发IO的时候更加高效
  5. openstack-neutron基本的网络类型
  6. UDP调用connect函数
  7. as3 访问远程计算机,Flash AS3中数据发送与接收
  8. 如何基于Redis Replication设计并实现Redis-replicator?
  9. VTK:图像收缩用法实战
  10. 我要发明计算机作文,我想发明什么作文小学四年级
  11. 前端学习(2879):实现v-if和v-show设计分析 视图搭建
  12. git常用命令(史上最经典)
  13. 网页设计软件html图标,网页设计Photoshop(PS)CSS切图必用工具
  14. 代码运行:CornerNet源码
  15. 【论文阅读】Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields
  16. 22. OP-TEE中TA与CA执行流程-------tee-supplicant(一)
  17. springboot疑难杂症
  18. VS中使用QT进行中英文翻译
  19. pycharm 第三方库加载不出来
  20. 机器视觉LED灯珠检测案例

热门文章

  1. mov和mp4格式哪个好_陈蛋蛋碎碎念—如何将腾讯视频格式转换成MP4格式
  2. 亿恒众筹V3联合版徒步课程报名系统-独立版
  3. 如何提高自己的自信心
  4. java 幻影_幻影RStudio错误
  5. vivo手机用什么蓝牙耳机好?公认音质最好的蓝牙耳机
  6. HTTP状态码重定向区别以及优先级
  7. mulitpartfile怎么接收不到值_王者荣耀:460是怎么来的?为什么卡顿是460而不是别的数?...
  8. istio 实战 三 智能路由
  9. 【什么是盒模型】标准盒子模型、怪异盒子模型
  10. 华为手机为什么深受上班族钟爱?这四点原因很真实,你觉得呢