# cp命令
[TOC]
>[info] cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。
它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。
cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
## 語法
cp (選項) (參數)
### 選項
>[success]-a:此參數的效果和同時指定"-dpR"參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
### 參數
>[info] 源文件:指定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄
## 實例
如果把一個文件復制到一個目標文件中,而目標文件已經存在,那么,該目標文件的內容將被破壞。此命令中所有參數既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.或點點..的形式。例如,下面的命令將指定文件復制到當前目錄下:
~~~
[root@localhost test]# cp /etc/passwd .
[root@localhost test]# ls
book.txt passwd
~~~
>[danger] 所有目標文件指定的目錄必須是己經存在的,cp命令不能創建目錄。
如果沒有文件復制的權限,則系統會顯示出錯信息。
### 復制目錄并改名
~~~
# 將文件 `/etc/passwd` 復制到目錄/test/下,并改名為password
[root@localhost test]# cp /etc/passwd /test/password
[root@localhost test]# ls -l /test/password
-rw-r--r-- 1 root root 1577 09-14 19:19 /test/password
~~~
### 遞歸的復制目錄
?
~~~
將目錄`/usr/local/src/nginx-1.2.9`下的所有文件及其子目錄復制到目錄/test中
[root@localhost test]# cp -r /usr/local/src/nginx-1.2.9 .
[root@localhost test]# ls
nginx-1.2.9
~~~
我們在Linux下使用cp命令復制文件時候,有時候會需要覆蓋一些同名文件,覆蓋文件的時候都會有提示:需要不停的按Y來確定執行覆蓋。
文件數量不多還好,但是要是幾百個估計按Y都要吐血了,于是有了下面的這個方法:
`cp -r -a aaa/* /bbb`
成功,沒有提示按Y、傳遞了目錄屬性、沒有略過目錄。
- Linux的安裝
- Linux的軟件安裝管理
- Linux零碎的命令
- 了解ssh
- 系統調優及安全設置
- Linux系統中的硬鏈接和軟連接
- Linux文件和目錄的屬性及權限
- 命令總結
- 文件目錄管理命令
- cat
- cd
- cp
- ls
- mkdir
- mv
- rm
- touch
- vi
- 硬件檢測內核shell命令
- echo
- alias
- dd
- diff
- date
- grep(重要)
- head
- rpm
- sed(重要)
- tree
- unalias
- yum
- seq
- su
- less
- more
- tail
- awk(重要)
- pwd
- history
- whoami
- find(重要)
- which
- vimdiff
- sudo
- wget
- ln
- chmod
- chown
- vim常用技巧
- scp
- 工作場景應用總結
- 自動刪除n天前日志
- 刪除一個目錄下的所有文件但保留一個文件
- Linux軟件安裝
- php安裝(apache版本)
- vsftpd安裝
- git安裝
- python安裝
- LNMP安裝
- LAMP安裝I
- LAMP安裝II
- svn安裝
- svn在Linux下的命令操作
- svn鉤子簡介
- svn代碼上傳流程
- Crond介紹
- sersync應用指南
- 其他
- 小結一
- 系統調優重新整理tmp
- linux禁止root用戶直接登錄sshd并修改默認端口