一天一个Linux基础命令之复制文件或目录命令cp
cp復(fù)制文件或目錄
1、命令格式
cp[OPTION]...?SOURCE...?DIRECTORY2、命令說明
cp命令用來復(fù)制文件或者目錄,是Linux系統(tǒng)中最常用的命令之一。一般情況下,shell會(huì)設(shè)置一個(gè)別名,在命令行下復(fù)制文件時(shí),如果目標(biāo)文件已經(jīng)存在,就會(huì)詢問是否覆蓋,不管你是否使用-i參數(shù)。但是如果是在shell腳本中執(zhí)行cp時(shí),沒有-i參數(shù)時(shí)不會(huì)詢問是否覆蓋。這說明命令行和shell腳本的執(zhí)行方式有些不同。?
將源文件復(fù)制到目標(biāo)文件,源文件可以有多個(gè),目標(biāo)文件只能有一個(gè)
3、命令參數(shù)
-a:等于-dR選項(xiàng)一起用,保持所有屬性
-b:當(dāng)目標(biāo)文件存在時(shí)則備份目標(biāo)文件,然后把新文件復(fù)制過去
-d:當(dāng)源為鏈接文件時(shí),復(fù)制鏈接文件本身而非指向的源文件
-p:復(fù)制文件或目錄的時(shí)候保持文件的元數(shù)據(jù)信息,時(shí)間戳,屬主,屬組
-f:強(qiáng)制復(fù)制,如果文件存在則強(qiáng)制覆蓋不詢問管理員(不好用)
-i:如果文件存在,則詢問管理員是否覆蓋
-L:復(fù)制鏈接文件時(shí),總是復(fù)制鏈接文件的源文件
-r|-R:復(fù)制目錄及目錄中的內(nèi)容
-n:復(fù)制文件時(shí)不會(huì)覆蓋現(xiàn)有文件
-t:用于源文件有多個(gè)的情況下,此時(shí)目標(biāo)文件在前,源文件或目錄在后
-u:復(fù)制文件時(shí)如果目標(biāo)文件比源文件新,則不復(fù)制
?-v,--verbose:顯示詳細(xì)信息
?--help:幫助
?--version:顯示命令版本
4、常用實(shí)例
1、復(fù)制單個(gè)文件到目標(biāo)目錄中,目標(biāo)目錄文件不存在
命令:cp login /bak
[root@server~]#?ll total?48 -rw-------.1?root?root??1442?Dec??7?21:28?anaconda-ks.cfg -rw-r--r--.1?root?root???322?Dec?11?21:45?ifuser.sh -rw-r--r--.1?root?root?27312?Dec??7?21:28install.log -rw-r--r--.1?root?root??7572?Dec??7?21:27?install.log.syslog lrwxrwxrwx.1?root?root????14?Dec?11?21:21?login->?/sh/iflogin.sh -rw-------.1?root?root?????0?Dec??9?20:39?yum.log [root@server~]#?ll?/bak/ [root@server~]#?cp?ifuser.sh?/bak/ [root@server~]#?ll?/bak/ total?4 -rw-r--r--.1?root?root??322?Dec?11?21:46?ifuser.sh [root@server~]#提示:在沒帶-p參數(shù)時(shí)時(shí)間是不一樣的,在帶-p參數(shù)后時(shí)間是一樣的,并且屬主屬組也一樣,-a參數(shù)是在-p參數(shù)的基礎(chǔ)上在加上-d的功能,-d是復(fù)制鏈接文件時(shí),復(fù)制鏈接文件并非原文件。
例2:復(fù)制文件存在時(shí),詢問是否覆蓋
[root@server~]#?ll?/bak/ total?20 -rw-r--r--.1?root?root?1926?Nov?27??2013CentOS-Base.repo -rw-r--r--.1?root?root??638?Nov?27??2013?CentOS-Debuginfo.repo -rw-r--r--.1?root?root??630?Dec??8?20:43?CentOS-Media.repo -rw-r--r--.1?root?root?3664?Nov?27??2013?CentOS-Vault.repo -rw-r--r--.1?root?root??322?Dec?11?21:46?ifuser.sh [root@server~]#?cp?ifuser.sh?/bak/ cp:overwrite?`/bak/ifuser.sh'??y [root@server~]#?cp?-f?ifuser.sh?/bak/ cp:overwrite?`/bak/ifuser.sh'??y [root@server~]#說明:目標(biāo)文件存在時(shí),會(huì)詢問是否覆蓋。這是因?yàn)?/span>cp是cp?-i的別名。目標(biāo)文件存在時(shí),即使加了-f標(biāo)志,也還會(huì)詢問是否覆蓋。
例3:復(fù)制整個(gè)目錄
命令:cp -r /bak ./
[root@server~]#?ls anaconda-ks.cfg??ifuser.sh?install.log?install.log.syslog??login??yum.log [root@server~]#?cp?-r?/bak/?./ [root@server~]#?ls anaconda-ks.cfg??bak?ifuser.sh??install.log??install.log.syslog??login?yum.log [root@server~]#?cd?bak/ [root@serverbak]#?ls CentOS-Base.repo??CentOS-Debuginfo.repo??CentOS-Media.repo??CentOS-Vault.repo??ifuser.sh [root@serverbak]#提示:./表示當(dāng)前目錄,復(fù)制目錄時(shí),如果目標(biāo)目錄不存在則創(chuàng)建,如果目標(biāo)目錄存在則把原文件復(fù)制到目標(biāo)目錄中
例4:復(fù)制鏈接文件
命令:cp -d login /bak/
[root@server~]#?ll?/bak/ total?16 -rw-r--r--.1?root?root?1926?Nov?27??2013CentOS-Base.repo -rw-r--r--.1?root?root??638?Nov?27??2013?CentOS-Debuginfo.repo -rw-r--r--.1?root?root??630?Dec??8?20:43?CentOS-Media.repo -rw-r--r--.1?root?root?3664?Nov?27??2013CentOS-Vault.repo [root@server~]#?ll? total?48 -rw-------.1?root?root??1442?Dec??7?21:28?anaconda-ks.cfg -rw-r--r--.1?root?root???322?Dec?11?21:45?ifuser.sh -rw-r--r--.1?root?root?27312?Dec??7?21:28install.log -rw-r--r--.1?root?root??7572?Dec??7?21:27?install.log.syslog lrwxrwxrwx.1?root?root????14?Dec?11?21:21?login->?/sh/iflogin.sh -rw-------.1?root?root?????0?Dec??9?20:39?yum.log [root@server~]#?cp?-d?login?/bak/ [root@server~]#?ll?/bak/ total?16 -rw-r--r--.1?root?root?1926?Nov?27??2013CentOS-Base.repo -rw-r--r--.1?root?root??638?Nov?27??2013?CentOS-Debuginfo.repo -rw-r--r--.1?root?root??630?Dec??8?20:43?CentOS-Media.repo -rw-r--r--.1?root?root?3664?Nov?27??2013CentOS-Vault.repo lrwxrwxrwx.1?root?root???14?Dec?11?22:04?login?->/sh/iflogin.sh [root@server~]#說明:復(fù)制鏈接文件時(shí)-d是只復(fù)制鏈接文件,不復(fù)制鏈接文件的原文件
轉(zhuǎn)載于:https://blog.51cto.com/geekb0y/1881743
總結(jié)
以上是生活随笔為你收集整理的一天一个Linux基础命令之复制文件或目录命令cp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Atitit sql计划任务与查询优化器
- 下一篇: linux中rpm命令管理