cp 的使用

 

cp 複製文件和目錄

cp SRC DEST

SRC是文件:

如果目標不存在:

新建DEST,並將SRC中內容填充至DEST中

如果目標存在:

如果DEST是文件:將SRC中的內容覆蓋至DEST中

基於安全,建議爲cp命令使用-i選項

如果DEST是目錄:

在DEST下新建與原文件同名的文件,並將SRC中內容填充至新文件中


SRC...:多個文件

DEST必須存在,且爲目錄,其它情形均會出錯;


SRC是目錄:此時使用選項:-r

如果DEST不存在:

則創建指定目錄,複製SRC目錄中所有文件至DEST中;

如果DEST存在:

如果DEST是文件:報錯

如果DEST是目錄:


wKioL1efLxzQXkVqAAIHoJCWpq4110.png-wh_50

-i:交互式


-r, -R: 遞歸複製目錄及內部的所有內容;


-a: 歸檔,相當於-dR--preserv=all


-d:--no-dereference --preserv=links 不復制原文件,只複製鏈接名


--preserv[=ATTR_LIST]各種屬性

mode: 權限

ownership: 屬主屬組

timestamp:時間戳

links:鏈接

xattr:

context:環境

all:全部的


-p: 等同--preserv=mode,ownership,timestamp


-v: --verbose 查看複製過程 ,後臺執行不要加-v


-f: --force 強制


練習

1、使用別名命令,每日將/etc/目錄下所有文件,備份到/testdir/下獨立的新目錄下,並要求新目錄格式爲backupYYYY-mm-dd,備份過程可見

wKiom1efLHTQJZG-AAAuyo1LWQI612.png-wh_50

2、先創建/testdir/rootdir目錄,再複製/root所有下文件到該目錄內,並要求保留原有權限


wKioL1efLHXjkh4KAABj3KTfC6Q320.png-wh_50

cp -r --preserv=mode /root/* /testdir/rootdir

這個命令之所以執行不了是因爲/root/* 中 /root/ 代表着root以下的文件或目錄,* 代表的所有文件和目錄,因爲 /testdir/rootdir 是一個還沒有創建的文件或目錄,而所有文件不能複製到不存在的目錄或文件,存在的文件也不能複製成功,只有存在的目錄才能複製成功。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章