cp常用于復(fù)制文件或目錄。
cp命令復(fù)制時(shí),有如下幾種組合:
src:在這個(gè)目錄下存放stm32固件庫的.c文件linux常用命令,復(fù)制stm32f10x_stdperiph_lib_v3.5.0\libraries\stm32f10x_stdperiph_driver\src目錄下文件(圖10)到該目錄下。從src復(fù)制count字節(jié)的字符到dest. 與memmove功能一樣, 只是不能處理src和dest出現(xiàn)重疊. 返回dest的值.。2、如果在c:\windows\system32\config文件下,沒有這個(gè)sam文件,復(fù)制會順利進(jìn)行,如果這個(gè)sam文件,只是損壞,但還存在,復(fù)制時(shí),就會彈出提示框linux常用命令,詢問是否覆蓋文件,按是即可,如果在系統(tǒng)下無法覆蓋, 被系統(tǒng)阻止,則到安全模式下去覆蓋試試。
[root@smart linux]# cp b.txt k.txt
[root@smart linux]# cp b.txt k.txt
cp: overwrite `k.txt'? y
[root@smart linux]# cp -f b.txt k.txt
cp: overwrite `k.txt'? y
[root@smart linux]# \cp -f b.txt k.txt
[root@smart linux]# alias cp='cp'
[root@smart linux]# cp -r b.txt k.txt
cp -i
[root@smart Desktop]# cp k.txt s.txt
[root@smart Desktop]# cp -i k.txt s.txt
cp: overwrite `s.txt'? y
此處要注意,默認(rèn)情況下,Linux系統(tǒng)一般都會alias cp為交互模式,可以查看~/.bashrc。
cp -n
[root@smart Desktop]# cp k.txt n.txt
cp: overwrite `n.txt'? n
[root@smart Desktop]# cp -n k.txt n.txt
[root@smart Desktop]#
cp -R/-r
[root@smart linux]# cp abcde/ ss
cp: omitting directory `abcde/'
[root@smart linux]# cp -r abcde/ ss
[root@smart linux]# ls
a abcde a.txt b b.c b.c~ b.txt c d e f g h k.txt ss
cp -v
[root@smart linux]# cp -v k.txt s.txt
`k.txt' -> `s.txt'
由于在linux下一切皆文件,因此linux命令行下無法區(qū)分目標(biāo)路徑or目標(biāo)文件。
對于命令“ cp A B”注意下面幾個(gè)區(qū)別:
B不存在 B存在,且為文件 B存在,且為目錄
A為文件
結(jié)果:同目錄下出現(xiàn)B文件,內(nèi)容同A
結(jié)果:直接復(fù)制失敗,若加-r選項(xiàng),同目錄下不新增文件,B的舊內(nèi)容將被覆蓋為A文件內(nèi)容
A為目錄
結(jié)果:直接復(fù)制失敗,若加上-r選項(xiàng),同目錄下將會產(chǎn)生B目錄,目錄下內(nèi)容同A
結(jié)果:直接復(fù)制失敗,加-r選項(xiàng)也無法復(fù)制。
1.A為文件,B不存在,結(jié)果同目錄下出現(xiàn)B文件,內(nèi)容同A:
[root@smart test]# ls -p
A
[root@smart test]# cp A B
[root@smart test]# ls -p
A B
2.A為文件,B存在,且為文件,結(jié)果直接復(fù)制失敗,若加-r選項(xiàng),同目錄下不新增文件,B的舊內(nèi)容將被覆蓋為A文件內(nèi)容
[root@smart test]# cp -n A B
[root@smart test]# ll
total 4
-rw-r--r--. 1 root root 0 Nov 5 21:51 A
-rw-r--r--. 1 root root 4 Nov 5 22:03 B
[root@smart test]# cp -r A B
cp: overwrite `B'? y
[root@smart test]# ll
total 0
-rw-r--r--. 1 root root 0 Nov 5 21:51 A
-rw-r--r--. 1 root root 0 Nov 5 22:05 B
3.A為文件,B存在,B為目錄。結(jié)果A將復(fù)制到B文件夾下,文件名為A
[root@smart test]# ls -lRt
.:
total 4
drwxr-xr-x. 2 root root 4096 Nov 5 22:06 B
-rw-r--r--. 1 root root 0 Nov 5 21:51 A
./B:
total 0
-rw-r--r--. 1 root root 0 Nov 5 22:06 A
[root@smart test]# rm -rf B/A
[root@smart test]# ls
A B
[root@smart test]# ls -lRt
.:
total 4
drwxr-xr-x. 2 root root 4096 Nov 5 22:07 B
-rw-r--r--. 1 root root 0 Nov 5 21:51 A
./B:
total 0
[root@smart test]# cp A B
[root@smart test]# ls -lRt
.:
total 4
drwxr-xr-x. 2 root root 4096 Nov 5 22:07 B
-rw-r--r--. 1 root root 0 Nov 5 21:51 A
./B:
total 0
-rw-r--r--. 1 root root 0 Nov 5 22:07 A
4.A為目錄,B不存在。結(jié)果:直接復(fù)制失敗,若加上-r選項(xiàng),同目錄下將會產(chǎn)生B目錄,目錄下內(nèi)容同A
[root@smart test]# cp A B
cp: omitting directory `A'
[root@smart test]# cp -r A B
[root@smart test]# ls
A B
[root@smart test]# ls -p
A/ B/
5.A為目錄,B為文件,直接復(fù)制失敗,加-r選項(xiàng)也無法復(fù)制。
[root@smart test]# ls -p
A/ B
[root@smart test]# cp A B
cp: omitting directory `A'
[root@smart test]# cp -r A B
cp: cannot overwrite non-directory `B' with directory `A'
6.A、B均為目錄,且B存在
[root@smart test]# ls
A B
[root@smart test]# ls -p
A/ B/
[root@smart test]# cp A B
cp: omitting directory `A'
[root@smart test]# cp -r A B
[root@smart test]# ls
A B
Enjoy!
2017/11/10