cp(Copy file):將源文件複製至目標文件,或將多個源文件複製至目標目錄。node
cp [選項]... [-T] 源文件 目標文件 或:cp [選項]... 源文件... 目錄 或:cp [選項]... -t 目錄 源文件...
-a, --archive 等於-dR --preserve=all,與同時指定 -dpR 這三個選項效果同樣,用於複製整個目錄,包括目錄中的子目錄等都遞歸的複製,並且還要保持文件的訪問模式,全部者,時間戳等屬性與原文件同樣。 --backup[=CONTROL 爲每一個已存在的目標文件建立備份 -b 相似--backup 但不接受參數 --copy-contents 在遞歸處理是複製特殊文件內容 -d 等於--no-dereference --preserve=links -f, --force 若是目標文件沒法打開則將其移除並重試(當 -n 選項存在時則不需再選此項) -i, --interactive 覆蓋前詢問(使前面的 -n 選項失效),默認cp命令覆蓋目標文件時是不會提示的,不少Linux發行版裏的cp都被設置別名`cp -i`,其實做用就是給用戶一個提醒。若是你不想被提示,那麼請這樣輸入:\cp source target,或者使用cp命令的絕對路徑/bin/cp -H 跟隨源文件中的命令行符號連接 -l, --link 對源文件創建硬連接,而非複製文件
-L, --dereference 老是跟隨符號連接 -n, --no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項失效) -P, --no-dereference 不跟隨源文件中的符號連接 -p 等於--preserve=模式,全部權,時間戳 --preserve[=屬性列表 保持指定的屬性(默認:模式,全部權,時間戳),若是可能保持附加屬性:環境、連接、xattr 等 -c same as --preserve=context --sno-preserve=屬性列表 不保留指定的文件屬性 --parents 複製前在目標目錄建立來源文件路徑中的全部目錄 -R, -r, --recursive 遞歸複製目錄及其子目錄內的全部內容 --reflink[=WHEN] 控制克隆/CoW 副本。請查看下面的內如。 --remove-destination 嘗試打開目標文件前先刪除已存在的目的地文件 (相對於 --force 選項) --sparse=WHEN 控制建立稀疏文件的方式 --strip-trailing-slashes 刪除參數中全部源文件/目錄末端的斜槓 -s, --symbolic-link 只建立符號連接而不復制文件 -S, --suffix=後綴 自行指定備份文件的後綴 -t, --target-directory=目錄 將全部參數指定的源文件/目錄 複製至目標目錄 -T, --no-target-directory 將目標目錄視做普通文件 -u, --update 使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才複製文件; -v, --verbose 詳細顯示命令執行的操做。 -x, --one-file-system 複製的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,不然不復制,亦不處理位於其餘分區的文件
-Z, --context=CONTEXT set security context of copy to CONTEXT
[root@cent6 directory]# cp a.txt b.txt
[root@cent6 directory]# cp -v a.txt b.txt `a.txt' -> `b.txt'
[root@cent6 directory]# cp -uv a.txt c.txt
[root@cent6 directory]# cp -iv a.txt d.txt cp: overwrite `d.txt'? y `a.txt' -> `d.txt'
[root@cent6 directory]# cp -fv a.txt d.txt `a.txt' -> `d.txt'
[root@cent6 directory]# cp -rv dir1 dir2 `dir1' -> `dir2' `dir1/c.txt' -> `dir2/c.txt' `dir1/a.txt' -> `dir2/a.txt' `dir1/b.txt' -> `dir2/b.txt' `dir1/d.txt' -> `dir2/d.txt'
[root@cent6 directory]# cp -rv dir1 dir2 `dir1/c.txt' -> `dir2/dir1/c.txt' `dir1/a.txt' -> `dir2/dir1/a.txt' `dir1/b.txt' -> `dir2/dir1/b.txt' `dir1/d.txt' -> `dir2/dir1/d.txt'
[root@cent6 directory]# ll total 0 -rwxrwxrwx 1 root root 0 Apr 16 16:54 a.txt [root@cent6 directory]# cp a.txt /tmp/a1.txt [root@cent6 directory]# cp -p a.txt /tmp/a2.txt [root@cent6 directory]# ll /tmp total 12 -rwxr-xr-x 1 root root 0 Apr 16 16:56 a1.txt -rwxrwxrwx 1 root root 0 Apr 16 16:54 a2.txt
[root@cent6 directory]# cp -bv a.txt /tmp/ `a.txt' -> `/tmp/a.txt' [root@cent6 directory]# cp -bv a.txt /tmp/ `a.txt' -> `/tmp/a.txt' (backup: `/tmp/a.txt~') [root@cent6 directory]# ll /tmp total 0 -rwxr-xr-x 1 root root 0 Apr 16 17:02 a.txt -rwxr-xr-x 1 root root 0 Apr 16 17:02 a.txt~
[root@oracledb dir1]# cp -l a.txt b.txt [root@oracledb dir1]# cp a.txt c.txt [root@oracledb dir1]# ls -li 總用量 0 4718769 -rw-r--r-- 2 root root 0 4月 16 17:18 a.txt 4718769 -rw-r--r-- 2 root root 0 4月 16 17:18 b.txt 4718772 -rw-r--r-- 1 root root 0 4月 16 17:28 c.txt
[root@cent6 directory]# cp -sv a.txt a_link.txt `a.txt' -> `a_link.txt' [root@cent6 directory]# ll total 0 lrwxrwxrwx 1 root root 5 Apr 16 17:06 a_link.txt -> a.txt -rwxrwxrwx 1 root root 0 Apr 16 16:54 a.txt
[root@oracledb dir1]# ll 總用量 0 lrwxrwxrwx 1 root root 5 4月 16 17:30 a_link.txt -> a.txt -rw-r--r-- 1 root root 0 4月 16 17:18 a.txt [root@oracledb dir1]# cp -P a_link.txt c.txt [root@oracledb dir1]# ll 總用量 0 lrwxrwxrwx 1 root root 5 4月 16 17:30 a_link.txt -> a.txt -rw-r--r-- 1 root root 0 4月 16 17:18 a.txt lrwxrwxrwx 1 root root 5 4月 16 17:31 c.txt -> a.txt
[root@oracledb dir1]# cp -v -S _bak a.txt /tmp/ "a.txt" -> "/tmp/a.txt" [root@oracledb dir1]# cp -v -S _bak a.txt /tmp/ cp:是否覆蓋"/tmp/a.txt"? y "a.txt" -> "/tmp/a.txt" (備份:"/tmp/a.txt_bak")