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是目錄:
-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,備份過程可見
2、先創建/testdir/rootdir目錄,再複製/root所有下文件到該目錄內,並要求保留原有權限
cp -r --preserv=mode /root/* /testdir/rootdir
這個命令之所以執行不了是因爲/root/* 中 /root/ 代表着root以下的文件或目錄,* 代表的所有文件和目錄,因爲 /testdir/rootdir 是一個還沒有創建的文件或目錄,而所有文件不能複製到不存在的目錄或文件,存在的文件也不能複製成功,只有存在的目錄才能複製成功。