Linux 常用命令之cp,一個可以煮飯的工具;

cp


復制目錄和文件

對于系統管理員來說,在文件系統中將文件和目錄從一個位置復制到另外一個位置是家常便飯,而cp就是可以煮飯的工具之一。
cp需要源對象和目標對象,源對象在前,目標對象在后面。

1. 常用選項

基本用法

[root@local tmp]# ll
total 0
-rw-rw-r--. 1 gentoo gentoo 0 Jul 29 09:28 test.txt
[root@local tmp]# stat test.txt 
  File: `test.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 1310723     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/  gentoo)   Gid: (  500/  gentoo)
Access: 2016-07-29 09:29:03.019982074 -0400
Modify: 2016-07-29 09:28:08.737003238 -0400
Change: 2016-07-29 09:28:08.737003238 -0400
[root@local tmp]# cp test.txt /
[root@local tmp]# stat test.txt 
  File: `test.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 1310723     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/  gentoo)   Gid: (  500/  gentoo)
Access: 2016-07-29 09:29:03.019982074 -0400
Modify: 2016-07-29 09:28:08.737003238 -0400
Change: 2016-07-29 09:28:08.737003238 -0400
[root@local tmp]# ll test.txt 
-rw-rw-r--. 1 gentoo gentoo 0 Jul 29 09:28 test.txt

這是最基本的用法,但是這樣復制有些時候會修改文件或者目錄的相應屬性,不想修改就用接下來的選項

-a 保留原來所以參數進行復制文件或目錄,因為cp不同對象執行時會修所所屬主,所屬組,時間、權限等等屬性,可是有些時候進行對于原文件進行備份是我們不希望修改這些熟悉,所以就需要用-a 選項(常用選項)

root@local tmp]# ll 
total 0
-rw-rw-r--. 1 gentoo gentoo 0 Jul 29 09:28 test.txt
[root@local tmp]# stat test.txt 
  File: `test.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 1310723     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/  gentoo)   Gid: (  500/  gentoo)
Access: 2016-07-29 09:28:08.737003238 -0400
Modify: 2016-07-29 09:28:08.737003238 -0400
Change: 2016-07-29 09:28:08.737003238 -0400
[root@local tmp]# cp -a test.txt /root/
[root@local tmp]# cd /root
[root@local ~]# ll test.txt 
-rw-rw-r--. 1 gentoo gentoo 0 Jul 29 09:28 test.txt
[root@local ~]# stat test.txt 
  File: `test.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 786444      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/  gentoo)   Gid: (  500/  gentoo)
Access: 2016-07-29 09:28:08.737003238 -0400
Modify: 2016-07-29 09:28:08.737003238 -0400
Change: 2016-07-29 09:29:03.019982074 -0400

通過上面的實驗,我們可以發現出來Change time改變,其他的屬性均為改變。這就是-a選項的目的,不用-a選項都會修改,具體請自行嘗試。
-i 若目標路徑中存在原文件,會詢問我們是否覆蓋它

[root@local tmp]# cp -i /tmp/test.txt /
cp: overwrite `/test.txt'? y
[root@local tmp]# ll /test.txt
-rw-r--r--. 1 root root 0 Jul 29 09:41 /test.txt

-f 強制覆蓋,當我們復制一個文件到目標路徑時,若原文件存在于目標路徑中,我們可以使用-f 強制覆蓋,并且不提醒我們。、

[root@local tmp]# cp -f /tmp/test.txt /
[root@local tmp]#

–preserve[=ATTR_LIST] 用這個選項在復制過程選擇時間戳,屬主,權限是否保留 
mode: 權限 ownership: 屬主屬組 timestamp: links xattr context all 
-p: 等同–preserv=mode,ownership,timestamp

-u:僅僅當目標文件的內容比原文件新才進行復制

-R, -r, –recursive :復制當前目錄及目錄下面的文件一起

2.注意

Linux 常用命令之cp,一個可以煮飯的工具;

SRC是文件: 
如果目標不存在:新建DEST,并將SRC中內容填充至DEST中
如果目標存在: 
1.DEST是文件:將SRC中的內容覆蓋至DEST中基于安全,建議為cp命令使用-i選項 
2.DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中
復制文件和目錄cp 
cp SRC… DEST 
SRC…:多個文件 
DEST必須存在,且為目錄,其它情形均會出錯; 
cp SRC DEST 
SRC是目錄:此時使用選項: -r 如果DEST不存在:則創建指定目錄,復制SRC目錄中所 
有文件至DEST中; 
如果DEST存在: 1. DEST是文件:報錯 2.DEST是目錄:

原創文章,作者:fighter,如若轉載,請注明出處:http://www.www58058.com/26932

(0)
fighterfighter
上一篇 2016-08-02
下一篇 2016-08-02

相關推薦

  • 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。[root@localhost ~]# cp -r /etc/skel/ /home/tuser1[root@localhost /]# chmod -R g=,o= /home/tuser1 2、編輯/etc/group文件…

    Linux干貨 2017-03-04
  • SELinux在httpd服務端中的使用

    一、啟用SELinux策略并安裝httpd服務,改變網站的默認主目錄為/website,添加SELinux文件標簽規則,使網站可訪問(以CentOS7系統操作) 1、首先查看本系統是否已經安裝httpd服務 2、查看httpd的配置文件所在路徑 3、創建主目錄為/website與網頁文件"index.html",并更改httpd服務為該路…

    Linux干貨 2016-09-16
  • 第五周學習總結-rpm&yum

    我們都知道,計算機只能識別二進制程序,而程序員編寫的源代碼都是以純文本形式存在,因此,要想讓計算機識別并運行這些源代碼程序,就必須通過中間的轉換機制讓源代碼變為二進制程序文件,而這種轉換過程就稱為編譯過程。Linux的各發行版本中由于各廠商的編譯過程不盡相同,因此就誕生了各種不同的軟件管理包組件。其中我們最熟知的就要數Redhat系列的rpm包了。 rpm包…

    2018-01-03
  • 用戶權限

    一、用戶和組的主要配置文件
    二、用戶管理命令
    三、組管理命令
    四、查看用戶相關的ID信息
    五、切換用戶或以其他用戶身份執行命令

    2018-03-13
  • N22-浙江-情歌第一周博客作業

    一、計算機的組成及其功能    計算機有五大組成部分:CPU(控制器和運算器)、內存、輸入、輸出           CPU:運算、控制、寄存、緩存功能           內存:RAM       &nbsp…

    Linux干貨 2016-08-15
  • 基于Redis的開源分布式服務Codis

    Redis在豌豆莢的使用歷程——單實例==》多實例,業務代碼中做sharding==》單個Twemproxy==》多個Twemproxy==》Codis,豌豆莢自己開發的分布式Redis服務。在大規模的Redis使用過程中,他們發現Redis受限于多個方面:單機內存有限、帶寬壓力、單點問題、不能動態擴容以及磁盤損壞時的數據搶救。 Redis通常有3個使用途徑…

    Linux干貨 2015-02-25
欧美性久久久久