Linux命令學習總結:cp命令
命令簡介:
cp命令用來復制文件或目錄。指令英文原義:copy,copy files and directories
指令所在路徑:/bin/cp
命令語法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
命令參數:
參數 | 長參數 | 描述 |
---|---|---|
-a | 等同于-dR | |
-d | 復制符號鏈接 | |
-f | – -force | 強制復制 |
-i | 交互式模式。覆蓋目標文件之前先要進行詢問 | |
-n | 不覆蓋 | |
-r/-R | 處理指定目錄以及子目錄 | |
-v | – -verbose | 顯示命令執行的詳細信息 |
– -help | 顯示命令在線幫助 | |
– -version | 顯示命令版本信息 |
使用示例:
1. 選項-in 和 -ni 的區別
cp -in /app/001.log /app/file.log
該命令,當file.log存在時,不會覆蓋file.log,即file.log不會做任何的變化,且不會有任何提示信息;file.log不存在時,會創建file.log,并用001.log的內容進行填充。
cp -ni /app/001.log /app/file.log
該命令,當file.log存在時,會提示覆蓋file.log,如果選擇yes,就會覆蓋文件的內容;file.log不存在時,會創建file.log,并用001.log的內容進行填充。
總結:-i 和 -n選項放在一起的時候,后面的選項會覆蓋前面的選項。
2. cp的幾種使用情況總結
(1) SOURCE為文件,DEST不存在的話,創建DEST文件,復制SOURCE的內容過去,此時新創建的DEST文件的所有者是源。
幾種情況:
命令 | 描述 |
---|---|
cp /appa/a.txt /appb/b.txt | b.txt 不存在,創建b.txt文件 |
cp /appa/a.txt /appb/b.sh | b.sh 不存在,創建b.sh文件 |
cp /appa/a.txt /appb/abc | abc不存在,創建abc文件,注意abc是文件 |
(2) 目標文件存在,overwrite,覆蓋是內容覆蓋,目標文件的所有者和后綴等一些文件元數據不變,cp后的文件的名稱為目標文件的名稱,注意數據丟失風險,建議用-i選項
cp -i a.txt b.txt
cp -i a.txt bb.sh
(3) 目標文件存在且為目錄,在DEST目錄下新建與原文件同名的文件,并將源文件中內容填充至新文件中
cp /appa/a.txt /appb/abc
abc此時存在且為目錄
(4) 源文件為多個文件,目標文件存在且為目錄,在目標文件夾下新建與原
文件同名的文件,并將原文件內容復制進新文件中,在此不再舉例
(5) 源文件為目錄,目標文件不存在,此時,創建指定DEST同名目錄,復制SRC目錄中所有文件至DEST下,舉例如下:
創建/testdir/rootdir目錄,并復制/root下所有文件到該目錄內,要求保留原有權限
答案:cp -a /root /testdir/rootdir
注意:rootdir這個目錄不存在,而testdir存在
(6) 源文件為目錄,目標文件存在且為目錄,在DEST下新建與原目錄同名的目錄,并將SRC中內容復制至新目錄中,舉例:
/testdir/rootdir目錄存在,復制/app/test目錄本身到rootdir目錄內
答案: cp -a /app/test /testdir/rootdir
(7) 源文件為目錄,目標文件存在且為目錄,且下面是有文件的,如何把源文件夾下面的文件拷貝到目標文件夾下面?舉例:
/testdir/rootdir目錄存在,且下面有文件和文件夾,復制/app/test目錄下面的內容到rootdir目錄內
答案: cp -a /app/test/* /testdir/rootdir
原創文章,作者:woking,如若轉載,請注明出處:http://www.www58058.com/82535