Linux 複製檔案cp 指令用法教學與範例 - GT Wang
文章推薦指數: 80 %
在Linux 系統之中若要進行檔案或目錄的複製,可以使用 cp 指令,而除了簡單的複製檔案之外,此指令也具有額外的建立連結、自動備份等附加功能,以下是 cp ...
Blogger舊站
關於
Facebook
Flickr
物聯網
網站架設
程式設計
統計
素食
特價優惠
宗教
物聯網
網站架設
程式設計
統計
素食
特價優惠
宗教
Linux複製檔案cp指令用法教學與範例
2021/11/09
0則留言
本篇介紹如何在Linux系統下使用cp指令複製檔案或目錄,並提供常見的使用範例。
在Linux系統之中若要進行檔案或目錄的複製,可以使用cp指令,而除了簡單的複製檔案之外,此指令也具有額外的建立連結、自動備份等附加功能,以下是cp指令的使用方式介紹。
複製檔案
若要將source.txt檔案複製一份到dest.txt,可以執行:
#將source.txt複製到dest.txt
cpsource.txtdest.txt
若要將source.txt複製到其他目錄之下,可以指定絕對路徑:
#將source.txt複製到/path/to/dest.txt
cpsource.txt/path/to/dest.txt
如果要將檔案複製到其他目錄,保持原來的檔案名稱,可以僅指定目的目錄即可,也就是說以下兩種寫法是等效的:
#將source.txt複製到/path/to/source.txt
cpsource.txt/path/to/source.txt
#將source.txt複製到/path/to/source.txt
cpsource.txt/path/to/
亦可將多個檔案一起複製到目的目錄:
#將source1.txt、source2.txt、source3.txt複製到/path/to目錄中
cpsource1.txtsource2.txtsource3.txt/path/to/
複製目錄
如果要複製整個目錄以及該目錄下的所有子目錄與檔案,可以加上-r參數(或是-R、--recursive參數亦可),以遞迴的方式進行複製:
#將myfolder目錄複製到/path/to/路徑下
cp-rmyfolder/path/to/
強制覆蓋檔案
若遇到目的檔案已存在的情況,cp指令預設會覆蓋既有的檔案內容,但是如果目的檔案檔案無法寫入(例如檔案權限設定為唯讀),就會無法進行複製的動作。
如果希望cp指令在無法寫入目的檔案時,嘗試刪除目的檔案,再重新複製一份新的檔案,可以加上-f或--force參數:
#強制複製檔案
cp-fsource.txtdest.txt
如果希望cp指令在每次複製檔案前都先刪除目的檔案,再進行檔案的複製,則可加上--remove-destination參數:
#先刪除目的檔案,再進行複製
cp--remove-destinationsource.txtdest.txt
不要覆蓋既有檔案
如果希望cp指令遇到目的檔案已經存在的狀況,不要覆蓋既有的檔案,可以加上-n或--no-clobber參數:
#不要覆蓋既有檔案
cp-nsource.txtdest.txt
另一種方式是加上-i或--interactive參數,讓cp在覆蓋檔案之前,先詢問使用者,經確認之後再進行覆寫:
#經確認後再覆寫檔案
cp-isource.txtdest.txt
自動備份檔案
若希望cp指令在覆蓋檔案時,可以將舊檔案自動備份起來,可以加上-b或--backup參數:
#自動備份檔案
cp-bsource.txtdest.txt
cp指令預設會將原始檔案名稱加上~這個後綴,作為備份檔案名稱(例如dest.txt就會備份至dest.txt~),若要自行指定備份檔名後綴,可以用-S或--suffix參數來更改,例如改用.bak作為備份檔案名稱的後綴:
#指定備份檔名後綴
cp-b-S.baksource.txtdest.txt
這樣dest.txt就會被備份至dest.txt.bak。
保留檔案屬性
若希望cp在複製檔案時,可以連同檔案屬性一起複製,可以加上-p或--preserve參數:
#保留檔案屬性
cp-psource.txtdest.txt
加上-p或--preserve參數預設會保留權限(mode)、擁有者(ownership)、時間戳記(timestamps),若希望更改保留的屬性種類,可以使用--preserve參數來指定,其餘可用的選項有SELinuxcontexts(context)、連結(links)、延伸屬性(xattr)、所有屬性(all),例如:
#指定保留的檔案屬性
cp--preserve=mode,ownership,timestamps,xattrsource.txtdest.txt
若只要複製檔案的屬性,而不要複製檔案本身的資料,可以加上--attributes-only參數:
#只複製檔案屬性
cp--attributes-onlysource.txtdest.txt
關於各屬性種類的說明,可以參考Filepermissionsandattributes。
連結檔解析
假設我們建立一個連結檔link.txt指向source.txt:
#建立連結檔
ln-ssource.txtlink.txt
如果希望cp指令在複製連結檔案時,能夠解析連結檔所指向的實際檔案,複製那一個實際的目標檔案,可以加上-L或--dereference參數:
#複製檔案(解析連結)
cp-Llink.txtdest.txt
由於link.txt是指向source.txt的連結檔,所以這裡的dest.txt實際上就是從source.txt所複製出來了。
若希望cp指令在複製連結檔案時,不要進行連結的解析,僅將連結檔直接複製,則可改用-P或--no-dereference參數:
#複製檔案(保留連結)
cp-Plink.txtlink2.txt
此處所複製出來的link2.txt就僅僅是一個指向source.txt的連結檔案。
以軟連結、硬連結複製檔案
cp指令若加上-s或--symbolic-link參數,可以用軟連結(symboliclink)的方式建立檔案,也就是等同於使用ln-s指令來建立連結:
#以軟連結複製檔案
cp-ssource.txtlink.txt
這樣建立的link.txt檔案就是一個指向source.txt的連結檔。
若要以硬連結複製檔案,可以加上-l或--link參數:
#以硬連結複製檔案
cp-lsource.txtdest.txt
這裡dest.txt的inode會與source.txt相同。
保留來源目錄結構
若要保留來源檔案的目錄結構,可以加上--parents參數:
#保留來源目錄結構
cp--parentspath/to/source.txtmyfolder/
這樣就會把path/to/source.txt複製到myfolder/path/to/source.txt。
僅更新檔案
cp指令若加上-u或--update參數,就會自動檢查來源檔案與目的檔案的修改時間,如果來源檔案比目的檔案更新,才會更新目的檔案,否則就不做任何動作:
#僅更新檔案
cp-usource.txtdest.txt
參考資料
HowtoForge:Linuxcpcommandtutorialforbeginners(8examples)
GeeksforGeeks:cpcommandinLinuxwithexamples
Linux
G.T.Wang
個人使用Linux經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。
LeaveaReply取消回覆
留言*
Name*
Email*
Website
搜尋
分類Arduino(5)
BeagleBoneBlack(1)
DIY(46)
Linux(315)
MacOSX(32)
Octave(15)
Perl(12)
R(47)
Windows(97)
WordPress(16)
個人(15)
免費(35)
兒童(28)
實用工具(85)
手機(13)
技巧(45)
有趣(99)
樹莓派(57)
物聯網(55)
玄學(11)
生活(208)
程式設計(137)
統計學(8)
網頁空間(36)
網頁開發(128)
虛擬化(7)
農業(42)
遊戲(9)
開箱(128)
雲端(4)
宗教
如何戒邪淫、遠離婚外情
戒淫寶典:《壽康寶鑑》白話有聲書
公益
台灣世界展望會
智邦公益網
igiving公益網
社團法人新竹縣愛心物資集發協會
Yahoo奇摩公益
©2021G.T.Wang
延伸文章資訊
- 1複製目錄(cp 指令) - IBM
使用cp 指令,把SourceFile 或SourceDirectory 參數所指定的檔案或目錄內容副本,建立到TargetFile 或TargetDirectory 參數所指定的檔案或目錄。 ...
- 2Linux常用指令-cp-複製檔案與目錄 - 愛踢瑞士刀
CP是Linux(Unix Like)常用使用命令之一,用來複製檔案與目錄。 指令:cp -參數 來源檔案 目標檔案. 常用參數: -a:除了具有-p參數功能外,還能加入SElinux屬性
- 3如何使用Linux 終端複製檔案和目錄 - Delft Stack
我們在Linux 和Unix 作業系統中使用 cp 命令來複制檔案和目錄。 要將檔案 abc.txt 的內容複製到另一個檔案 backup.txt 中,我們使用以下命令。
- 4第六章、Linux 檔案與目錄管理
說明在Linux 底下處理檔案與目錄的相關指令啊~^_^ ... 6.2.1 檔案與目錄的檢視: ls; 6.2.2 複製、刪除與移動: cp, rm, mv; 6.2.3 取得路徑的檔案 ...
- 5[Linux] cp指令的用法 - 痞客興的部落格
cp命令用來複製檔或者目錄,是Linux系統中最常用的命令之一。一般情況下,shell會設置一個別名,在命令列下複製檔時,如果目的檔案已經存在,就會詢問 ...