萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux cp 指令完整教學:檔案與目錄複製的所有參數與實戰範例

cp 是 Linux 最基礎的複製指令,但其豐富參數常被忽略。精通 cp 可精確控制屬性保留、覆蓋行為、備份機制、稀疏檔處理等,是 Shell 腳本撰寫與系統管理的基本功。

語法

cp [選項]... 來源 目標
cp [選項]... 來源... 目錄

核心參數分類

覆蓋與互動控制

參數長參數行為
-i--interactive覆蓋前詢問
-n--no-clobber不覆蓋既有檔案
-f--force目標無法開啟時移除重試
-b--backup覆蓋前建立備份
-S--suffix=後綴自訂備份後綴(預設 ~)
-V--backup=控制方式備份命名規則 (numbered, simple)

屬性保留

參數長參數保留屬性
-p--preserve=mode,ownership,timestamps模式、擁有者、時間戳
-a--archive等於 -dR --preserve=all(含連結、擴展屬性、ACL、SELinux 內容)
--preserve=屬性清單自訂保留:mode,ownership,timestamps,links,context,xattr,all

符號連結處理

參數行為
-d等於 --no-dereference --preserve=links,複製連結本身而非目標
-L總是跟隨符號連結複製目標檔案
-P不跟隨符號連結(預設)
-H僅跟隨命令列參數中的符號連結

遞迴與結構

  • -R, -r, --recursive:遞迴複製目錄樹。

實戰範例集

需求指令
僅來源較新才複製cp -u -v file1 file2
互動式複製cp -i file1 file2
強制覆蓋cp -f file1 file2
複製目錄樹cp -R dir1 dir2
多檔+目錄複製到目標目錄cp -R file1 file2 file3 dir1 dir2
保留屬性複製cp -p a.txt tmp/
保留目錄結構複製cp -P /var/tmp/a.txt ./temp/
建立備份(預設 ~)cp -b a.txt tmp/
備份後綴 ~1~ 格式cp -b -V t a.txt /tmp
自訂備份後綴 _bakcp -b -S _bak a.txt /tmp

進階技巧

  • 稀疏檔處理:cp --sparse=always src dst 保留稀疏特性,節省空間。
  • 複製到多個目標:tee 配合 cp 或使用 find -exec cp {} dir1 \; -exec cp {} dir2 \;。
  • 效能優化:大量小檔用 tar cf - src | (cd dest && tar xf -) 或 rsync -a 更快。

熟記核心參數組合,讓 cp 成為精準可控的檔案操作利器。

copyright © 萬盛學電腦網 all rights reserved