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 系統中複製檔案與目錄的核心指令。雖然基本用法直觀,但其豐富的參數選項能應對保留屬性、遞迴複製、符號連結處理、備份機制等進階需求。本文系統整理語法格式、參數對照表與實戰場景,助你精準掌握複製操作的每個細節。

指令語法三種形式

# 1. 單一來源複製到單一目標
cp [選項]... [-T] 來源 目標

# 2. 多個來源複製到目標目錄
cp [選項]... 來源... 目錄

# 3. 指定目標目錄後接來源
cp [選項]... -t 目錄 來源...
環境差異提醒: 互動式 Shell 通常預設別名 cp='cp -i'(覆蓋前詢問),但 Shell 腳本執行時不會載入別名,需顯式加參數控制行為。

核心參數分類速查

類別參數長參數說明
保留屬性-a--archive等同 -dR --preserve=all(保留連結、權限、時間戳、擴充屬性)
-p--preserve=屬性保留模式、擁有者、時間戳;可加 context,links,xattr
-d等同 --no-dereference --preserve=links
覆蓋控制-i--interactive覆蓋前詢問(覆蓋 -n)
-n--no-clobber不覆蓋既有檔案(覆蓋 -i)
-f--force目標無法開啟時移除後重試
-b--backup[=控制]為既有目標建立備份
遞迴與連結-R, -r--recursive遞迴複製目錄及其內容
-L--dereference總是跟隨符號連結複製目標檔案
-P--no-dereference不跟隨符號連結(預設)
特殊功能-l--link建立硬連結而非複製內容
--copy-contents遞迴時複製特殊檔案內容(如 /proc)

實戰場景範例

場景一:完整備份目錄(保留所有屬性)

cp -a /home/user/project /backup/project_$(date +%F)

場景二:安全複製(不覆蓋、詢問確認)

cp -i -n 來源檔案 目標目錄/

場景三:複製符號連結本身而非目標

cp -P symlink 目標路徑/

場景四:建立硬連結節省空間

cp -l 大檔案 連結名稱  # 同一檔案系統內有效

常見問題與最佳實務

  • 權限不足: 需對目標目錄具寫入權限,對來源檔案具讀取權限
  • 跨檔案系統硬連結失效: 改用 cp 複製或 ln -s 建立符號連結
  • 大量檔案複製效能: 考慮 rsync -a 或 tar | tar 管線替代

深入理解 cp 的參數交互關係(如 -i vs -n、-L vs -P),能避免資料遺失與非預期行為,是系統管理與自動化腳本撰寫的基本功。

Copyright © Windows教程網 All Rights Reserved