cp命令:復制文件和目錄
【功能說明】
cp命令可以理解英文單詞copy的縮寫,其功能為復制文件和目錄。
【語法格式】
1 cp [option] [source] [dest]
2 cp 【選項】 【源文件】 【目標文件】
提示說明:
1) cp命令以及后面的選項和文件,每個元素之間都至少要有一個空格
【命令參數說明】
參數選項 |
解釋說明 |
-p |
復制文件時保持源文件的所有者、權限信息及時間屬性 |
-d |
如果復制的源文件時符號鏈接,那么僅復制符號鏈接本身,而保留符號鏈接所有指向的目標文件或目錄 |
-r |
遞歸復制目錄,即復制目錄下的所有層級的子目錄及文件 |
-a |
等同於上面的 p 、d、r這三個選項的功能的總和 |
-i |
覆蓋已有文件前提示用戶確認 |
-t |
默認情況下命令格式是 “cp源文件” “目標文件”,使用 -t 參數可以顛倒順序,格式變為 “cp -t 目標文件 源文件” |
【使用范例】
1. 基礎范例
1.1 案例1:無參數和帶參數-a的比較
[root@python ~]# cd /test/ [root@python test]# pwd /test [root@python test]# ll -h #查看當前文件的時間屬性,大家已自己的為准 total 0 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir1 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir2 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir3 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir4 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir5 -rw-r--r-- 1 root root 0 Dec 1 03:33 file1.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file2.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file3.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file4.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file5.txt [root@python test]# cp file1.txt file4.txt cp: overwrite ‘file4.txt’? y [root@python test]# cp -a file1.txt file5.txt cp: overwrite ‘file5.txt’? y [root@python test]# ll -h #再次查看當前文件的時間屬性 total 0 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir1 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir2 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir3 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir4 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir5 -rw-r--r-- 1 root root 0 Dec 1 03:33 file1.txt #file1.txt文件是源文件 -rw-r--r-- 1 root root 0 Dec 1 03:33 file2.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file3.txt -rw-r--r-- 1 root root 0 Dec 1 03:36 file4.txt #file4在沒有使用任何參數 -rw-r--r-- 1 root root 0 Dec 1 03:33 file5.txt #file5在使用了“-a”參數復制后的,屬性不變 |
可以發現使用了-a參數復制時,文件的時間屬性沒有任何變化,-a參數的功能包含-p參數保持文件的屬性功能。
1.2 案例2:使用 -i 參數的例子
[root@python test]# cp -i file1.txt file5.txt #使用-i 參數復制文件,會提示是否覆蓋文件 cp: overwrite ‘file5.txt’? y [root@python test]# cp file1.txt file5.txt #不使用-i參數一樣的結果,為什么呢? cp: overwrite ‘file5.txt’? y [root@python test]# alias cp #使用alias命令查看到cp命令 系統設置了cp -i 的別名了 alias cp='cp -i' |
1.3 案例3:使用-r參數復制目錄
[root@python test]# cp dir1 dir2 #復制dir1 到dir2,但結果顯示跳過目錄dir1 cp: omitting directory ‘dir1’ [root@python test]# cp -r dir1 dir2/ #若使用-r參數則復制成功。 [root@python test]# tree dir2 #查看復制結果 dir2 ├── dir1 │ ├── test1 │ │ ├── test1 │ │ ├── test2 │ │ ├── test3 │ │ ├── test4 │ │ └── test5 │ ├── test2 │ │ ├── test1 │ │ ├── test2 │ │ ├── test3 │ │ ├── test4 │ │ └── test5 │ └── test3 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 ├── test1 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 ├── test2 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 └── test3 ├── test1 ├── test2 ├── test3 ├── test4 └── test5 7 directories, 30 files #提示: 使用-a參數也可以達到相同的效果,因為-a參數相當於“dpr” 三個參數 |