命令介紹
命令:cp 複製文件或目錄
用法: cp [OPTION]… [-T] SOURCE DEST cp 選項 源目標
cp [OPTION]… SOURCE… DIRECTOR cp 選項 源目錄 新目錄
cp [OPTION]… -t DIRECTORY SOURCE… cp 選項 目錄源
命令選項
[root@fp-21 ~]# cp --help
-a, --archive # 複製目錄時是使用,相當於-d、-p、-R參數組合
-d # 複製的源文件如果是鏈接文件,則複製鏈接文件而不是指向的文件本身
-f, --force # 強制複製,如果目標存在,不會進行-i、-u選項,直接覆蓋
-i, --interactive # 複製時如果目標文件已經存在,詢問是否替換
-H # 遵循源代碼中的命令行符號鏈接
-l, --link # 不復制文件,生成硬鏈接文件
-L, --dereference # 始終遵循源中的符號鏈接
-n, --no-clobber # 不覆蓋現有的文件
-P, --no-dereference # 永遠不要跟隨源代碼中的符號鏈接
-p # 除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中
-R, -r, --recursive # 遞歸複製目錄
-s, --symbolic-link # 不復制文件,生成軟鏈接文件
-S, --suffix=SUFFIX # 覆蓋通常的備份後綴
-t # 將所有源參數複製到目錄中
-T, --no-target-directory # 將 DEST 視爲普通文件
-u, --update # 若文件同名,屬性不一樣(如修改時間,大小等),則覆蓋目標文件
-v, --verbose # 複製的詳細解釋
--help # 幫助文檔
--version # 版本信息
命令實例
# 複製目錄時是使用,相當於-d、-p、-R參數組合
[root@fp-21 opt]# cp -a apple dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar 4 22:05 apple
# 複製的源文件如果是鏈接文件,則複製鏈接文件而不是指向的文件本身
[root@fp-21 opt]# cp -d link_banana dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar 4 22:05 apple
lrwxrwxrwx. 1 root root 6 Mar 4 23:15 link_banana -> banana
# 複製時如果目標文件已經存在,詢問是否替換
[root@fp-21 opt]# cp -i apple dir/apple
cp: overwrite ‘dir/apple’? y
# 不覆蓋現有的文件
[root@fp-21 opt]# cp -n apple dir/apple
# 除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中
[root@fp-21 opt]# ll dir/apple
-rw-r--r--. 1 root root 0 Mar 4 22:05 dir/apple
[root@fp-21 opt]# chown bin:bin apple
[root@fp-21 opt]# cp -p apple dir/apple
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple
-rw-r--r--. 1 bin bin 0 Mar 4 22:05 dir/apple
# 遞歸複製目錄
[root@fp-21 opt]# mkdir dir.bak
[root@fp-21 opt]# cp -r dir ./dir.bak/
[root@fp-21 opt]# tree dir.bak/
dir.bak/
└── dir
├── apple
├── banana
└── link_banana -> banana
# 若文件同名,屬性不一樣(如修改時間,大小等),則覆蓋目標文件
[root@fp-21 opt]# echo "改變文件大小" > apple
[root@fp-21 opt]# cp -u apple dir/apple
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple
-rw-r--r--. 1 bin bin 19 Mar 4 23:36 dir/apple
# 複製的詳細解釋
[root@fp-21 opt]# cp -v orange dir/
‘orange’ -> ‘dir/orange’