Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux cp 指令完全指南:檔案複製參數詳解、保留屬性與大量資料遷移技巧

編輯:Linux 教學

cp(copy)是 Linux 複製檔案與目錄的核心指令。掌握其豐富參數組合,能精確控制複製行為:保留權限時間戳、處理符號連結、覆蓋確認、稀疏檔案優化、大量資料斷點續傳等,是系統備份、部署發佈、資料遷移的基石操作。

語法格式

cp [選項] 檔案1 檔案2          # 檔案複製為檔案
cp [選項] 檔案... 目錄          # 多檔案複製至目錄
cp [選項] -R 目錄1 目錄2        # 遞歸複製整個目錄樹

核心參數速查表

參數長參數功能說明典型場景
-a--archive歸檔模式 = -dR --preserve=all,完整保留屬性、遞歸、符號連結系統備份、目錄完整複製
-r, -R--recursive遞歸複製目錄及子目錄目錄樹複製
-p--preserve保留模式、擁有者、時間戳(預設 mode,ownership,timestamps)保留原始屬性
-d--no-dereference複製符號連結本身而非指向目標保留連結結構
-L--dereference跟隨符號連結複製目標檔案實體化連結
-f--force強制覆蓋,不提示(若目標無寫權限先移除再建立)腳本自動化
-i--interactive覆蓋前詢問確認互動式操作防誤刪
-n--no-clobber不覆蓋已存在檔案(靜默跳過)增量同步
-u--update僅在來源較新或目標不存在時複製增量備份、同步
-v--verbose顯示詳細操作過程進度監控
-l--link建立硬連結而非複製節省空間、瞬間完成
-s--symbolic-link建立符號連結而非複製快捷方式、版本切換
--sparse=auto自動偵測稀疏檔案(大量空洞),複製時保持稀疏虛擬機映像、資料庫檔案
--reflink=auto支援 Copy-on-Write 檔案系統(Btrfs、XFS、OCFS2)即時複製,零 IO秒級複製 TB 級資料

實戰範例

1. 完整保留屬性的目錄備份(黃金標準)

cp -av /etc /backup/etc-$(date +%F)

2. 僅複製更新的檔案(增量同步)

cp -auv /src/data/ /dst/backup/

3. 保留符號連結結構而非實體化

cp -ad /opt/app/current /opt/app/backup-$(date +%F)

4. 大量小檔案加速:配合 tar 管道避免參數過長

# 來源端
cd /src && tar cf - . | pv | (cd /dst && tar xf -)

# 或使用 rsync 更專業(支援斷點續傳、壓縮、校驗)
rsync -avz --progress /src/ /dst/

5. 稀疏檔案複製(虛擬機映像、資料庫)

cp --sparse=always /var/lib/libvirt/images/vm.qcow2 /backup/

6. CoW 即時複製(需檔案系統支援)

cp --reflink=auto /data/huge.db /data/huge.db.backup
# 瞬間完成,實際空間僅佔增量變更

cp vs rsync vs tar:選型指南

工具優勢適用場景
cp內建、零依賴、參數精確控制單機本地複製、腳本嵌入、小規模同步
rsync增量、壓縮、校驗、遠端、斷點續傳、權限保留備份同步、跨機器遷移、生產環境標準
tar + 管道保留完整屬性、串流傳輸、適配大量小檔案大目錄樹遷移、系統打包、網路串流

常見坑點

  • 目標為檔案時複製多來源會報錯:cp a.txt b.txt c.txt 錯誤,必須 cp a.txt b.txt c.txt 目錄/。
  • 符號連結預設行為:不加 -d 時會跟隨連結複製目標實體,導致連結結構丟失。
  • --reflink 在 ext4 上無效,需 Btrfs/XFS/OCFS2/ZFS(需核心支援)。
  • 權限保留需 root:普通使用者 cp -p 無法保留擁有者/群組,需 sudo cp -a。

善用 cp -a 做完整備份、cp -u 做增量同步、--reflink 秒級複製大檔案,配合 rsync 處理跨機器與生產備份,構建分層資料複製策略。

Copyright © Windows教程網 All Rights Reserved