[Linux] cp指令的用法 - 痞客興的部落格

文章推薦指數: 80 %
投票人數:10人

cp命令用來複製檔或者目錄,是Linux系統中最常用的命令之一。

一般情況下,shell會設置一個別名,在命令列下複製檔時,如果目的檔案已經存在,就會詢問 ... 關閉廣告 痞客興的部落格 跳到主文 歡迎光臨痞客興(CharlesLin)在痞客邦的小天地,這裡留下的是我做過,我看過,我感興趣的一些文章,記錄備忘也和大家分享. 部落格全站分類:數位生活 相簿 部落格 留言 名片 Aug08Sat201511:08 [Linux]cp指令的用法 cp命令用來複製檔或者目錄,是Linux系統中最常用的命令之一。

一般情況下,shell會設置一個別名,在命令列下複製檔時,如果目的檔案已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。

但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。

這說明命令列和shell腳本的執行方式有些不同。

  1.命令格式: 用法:       cp [選項]... [-T] 源 目的       或:cp [選項]... 源... 目錄      或:cp [選項]... -t 目錄 源... 2.命令功能: 將原始檔案複製至目的檔案,或將多個原始檔案複製至目標目錄。

3.命令參數: -a, --archive    等於-dR --preserve=all     --backup[=CONTROL    為每個已存在的目的檔案創建備份 -b                類似--backup 但不接受參數    --copy-contents        在遞迴處理是複製特殊檔內容 -d                等於--no-dereference --preserve=links -f, --force        如果目的檔案無法打開則將其移除並重試(當 -n 選項                     存在時則不需再選此項) -i, --interactive        覆蓋前詢問(使前面的 -n 選項失效) -H                跟隨原始檔案中的命令列符號連結 -l, --link            連結檔而不複製 -L, --dereference   總是跟隨符號連結 -n, --no-clobber   不要覆蓋已存在的檔(使前面的 -i 選項失效) -P, --no-dereference   不跟隨原始檔案中的符號連結 -p                等於--preserve=模式,所有權,時間戳記     --preserve[=屬性清單   保持指定的屬性(預設:模式,所有權,時間戳記),如果                可能保持附加屬性:環境、連結、xattr 等 -R, -r, --recursive  複製目錄及目錄內的所有專案 4.命令實例: 實例一:複製單個檔到目標目錄,檔在目的檔案中不存在 命令: cp log.log test5 輸出: [root@localhost test]# cp log.log test5 [root@localhost test]# ll -rw-r--r-- 1 root root    0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxr-xr-x 2 root root 4096 10-28 14:53 test5 [root@localhost test]# cd test5 [root@localhost test5]# ll -rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log -rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log -rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log -rw-r--r-- 1 root root 0 10-28 14:53 log.log 說明: 在沒有帶-a參數時,兩個檔的時間是不一樣的。

在帶了-a參數時,兩個檔的時間是一致的。

   實例二:目的檔案存在時,會詢問是否覆蓋 命令: cp log.log test5 輸出: [root@localhost test]# cp log.log test5 cp:是否覆蓋“test5/log.log”? n [root@localhost test]# cp -a log.log test5 cp:是否覆蓋“test5/log.log”? y [root@localhost test]# cd test5/ [root@localhost test5]# ll -rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log -rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log -rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log -rw-r--r-- 1 root root 0 10-28 14:48 log.log 說明: 目的檔案存在時,會詢問是否覆蓋。

這是因為cp是cp -i的別名。

目的檔案存在時,即使加了-f標誌,也還會詢問是否覆蓋。

實例三:複製整個目錄 命令: 輸出: 目標目錄存在時: [root@localhost test]# cp -a test3 test5  [root@localhost test]# ll -rw-r--r-- 1 root root    0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxr-xr-x 3 root root 4096 10-28 15:11 test5 [root@localhost test]# cd test5/ [root@localhost test5]# ll -rw-r--r-- 1 root root    0 10-28 14:46 log5-1.log -rw-r--r-- 1 root root    0 10-28 14:46 log5-2.log -rw-r--r-- 1 root root    0 10-28 14:46 log5-3.log -rw-r--r-- 1 root root    0 10-28 14:48 log.log drwxrwxrwx 2 root root 4096 10-28 14:47 test3 目標目錄不存在是: [root@localhost test]# cp -a test3 test4 [root@localhost test]# ll -rw-r--r-- 1 root root    0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxrwxrwx 2 root root 4096 10-28 14:47 test4 drwxr-xr-x 3 root root 4096 10-28 15:11 test5 [root@localhost test]# 說明: 注意目標目錄存在與否結果是不一樣的。

目標目錄存在時,整個原始目錄被複製到目標目錄裡面。

  實例四:複製的 log.log 建立一個連結檔 log_link.log 命令: cp -s log.log log_link.log 輸出: [root@localhost test]# cp -s log.log log_link.log [root@localhost test]# ll lrwxrwxrwx 1 root root    7 10-28 15:18 log_link.log -> log.log -rw-r--r-- 1 root root    0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxrwxrwx 2 root root 4096 10-28 14:47 test4 drwxr-xr-x 3 root root 4096 10-28 15:11 test5 說明: 那個 log_link.log 是由 -s 的參數造成的,建立的是一個『快捷方式』,所以您會看到在檔的最右邊,會顯示這個檔是『連結』到哪裡去的!  轉自http://www.cnblogs.com/peida/archive/2012/10/29/2744185.html 文章標籤 linux command cp 全站熱搜 創作者介紹 痞客興 痞客興的部落格 痞客興發表在痞客邦留言(0)人氣() E-mail轉寄 全站分類:數位生活個人分類:來玩Linux此分類上一篇:[Linux]nl指令的用法 此分類下一篇:[Linux]自動telnet免輸入密碼 上一篇:[Linux]nl指令的用法 下一篇:[English]A開頭的單字背誦20個字 歷史上的今天 2015:[Android]Android基本功-旋轉圖片postRotate 2015:[Android]Android基本功-顯示圖片ImageView 2015:[Android]Android基本功-AlertDialogPositiveButtonNegativeButtonNeutralButton使用 2015:[English]D開頭的單字背誦20個字 2015:[English]C開頭的單字背誦20個字 2015:[English]B開頭的單字背誦20個字 2015:[English]A開頭的單字背誦20個字 2015:[Linux]nl指令的用法 2015:[Linux]less指令的用法 2015:[Linux]whereis指令的用法 2015:[Linux]locate指令的用法 2015:[Linux]tar指令的用法 2015:[Linux]gzip指令的用法 2015:[Linux]wget指令的用法 2015:[Linux]scp指令的用法 2015:[Linux]traceroute的用法 2015:[Linux]ping指令的用法 2015:[Linux]route指令的用法 2015:[Linux]ifconfig指令的用法 2015:[Linux]lsof指令的用法 2015:[Linux]iostat指令的用法 2015:[Linux]vmstat指令的用法 2015:[Linux]top指令的用法 2015:[Linux]killall指令的用法 2015:[Android]Android基本功-AlertDialogPositiveButton的使用 ▲top 留言列表 發表留言 C組廣告版面 活動快報 臺南牽手創作祭 創作分享臺南遊記,就有機會獲得旅遊獎勵金,總獎勵... 看更多活動好康 文章分類 綜合知識(3) 鄉土靈異(1)電的知識(7)綜合知識(143) WEB應用(14) 來玩JQM(3)來玩Flash(1)ASP.NET(2)EasyUI(5)CGI(1)來玩CSS(5)來玩HTML(10)來玩drupal(29)來玩Nginx(8)來玩JavaScript(50)WEB應用(13)來玩Node.js(5)來玩PHP(31)來玩Apache(3) 資料庫應用(5) 來玩MSSQL(11)來玩SQLite(1)來玩MongoDB(10)來玩MySQL(21)來玩SQLRelay(2) 影音多媒體應用(5) 影音多媒體應用(12)來玩vlc(4)來玩RED5(1)來玩Wowza(32)FFmpeg(33) 來玩Linux(5) 來玩DHCP(1)來玩iptables(5)來玩Memcache(1)來玩Linux(147)shell(12) 來玩docker(22)成人話題(0)股市知識(2)程式設計(2)邦邦星3C共和國(2)時事記評(0)奇人奇事(3)手機測試(1)個人感想(3)外行看文學(1)來玩Arduino(1)健身減肥(46)免費資源(10)來玩C#(92)C語言的嫩咖行(15)雲端應用(13)趣味人生(29)來起七桃(6)來玩英文(7)電腦軟體(9)來玩JAVA(17)來玩Android(56)公司會計(2)手機應用(3)電腦硬體(2)來玩Winodws(48)來玩Bananapi(9)網管應用(21)來玩git(1) QRCode POWEREDBY (登入) 參觀人氣 本日人氣: 累積人氣: 誰來我家 最新文章 回到頁首 回到主文 免費註冊 客服中心 痞客邦首頁 ©2003-2021PIXNET 關閉視窗



請為這篇文章評分?