技術文章 · IT 指令工具箱

Linux 檔案操作指令:cp、mv、rm、mkdir、touch、ln 常用範例

整理 Linux 與 macOS 複製、搬移、改名、建立目錄、刪除、建立軟連結與硬連結的常用指令,並把覆蓋與遞迴操作的風險標清楚。

作者 Steve Chen · 發布  · 約 4 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

檔案操作最容易出事的不是指令不會用,而是目前目錄、萬用字元和目的路徑看錯。先用 pwd、ls 與 dry-run 類做法確認目標,再執行會覆蓋或刪除的步驟。

18 組範例LinuxmacOSGNU/BSD 差異查核日期:2026-08-11
動手前:範例中的來源與目的都要換成自己的路徑。遇到刪除或大量搬移,先列清單、先備份;不要把 sudo 和遞迴刪除當成解權限問題的第一步。

建立檔案與目錄

建立單層目錄Linux/macOS

mkdir reports

父目錄必須已存在。

一次建立多層目錄Linux/macOS

mkdir -p backups/2026/08

-p 會連同缺少的父目錄一起建立。

建立空檔或更新時間Linux/macOS

touch healthcheck.txt

檔案存在時會更新時間戳,不會清空內容。

用 install 建目錄並指定權限GNU/BSD install

install -d -m 0750 app-data

適合部署腳本,建立後用 ls -ld 驗證。

複製與搬移

複製單一檔案Linux/macOS

cp source.conf backup.conf

目的檔存在時可能直接覆蓋。

複製前詢問覆蓋Linux/macOS

cp -i source.conf backup.conf

互動模式適合手動操作,不適合無人值守腳本。

保留時間與權限複製Linux/macOS

cp -p source.conf backup.conf

不同檔案系統不一定能保留所有 ACL 或擴充屬性。

遞迴複製資料夾Linux/macOS

cp -R source-dir/ destination-dir/

先確認目的路徑是否已存在,結果目錄層級會不同。

用 archive 模式複製GNU cp

cp -a source-dir/ destination-dir/

-a 盡量保留連結、權限與時間;macOS BSD cp 沒有完全相同的 -a。

替檔案改名Linux/macOS

mv old-name.conf new-name.conf

同一檔案系統通常是快速改名。

搬到另一個目錄Linux/macOS

mv report.csv archive/

archive/ 應先存在;搬移後檢查來源與目的。

搬移前詢問覆蓋Linux/macOS

mv -i report.csv archive/

避免不小心蓋掉同名報表。

連結與安全刪除

建立相對軟連結Linux/macOS

ln -s releases/current app-current

軟連結保存的是路徑;搬動目錄後可能失效。

查看連結指向Linux/macOS

readlink app-current

只讀取連結內容,不跟進目標。

建立硬連結Linux/macOS

ln source.bin source-copy.bin

通常不能跨檔案系統,也不建議對目錄建立。

刪除單一檔案前詢問Linux/macOS

rm -i obsolete.txt

會逐一詢問;重要資料仍應先備份。

刪除空目錄Linux/macOS

rmdir empty-folder

目錄不是空的就會拒絕,較安全。

遞迴刪除但只詢問一次GNU rm

rm -rI old-build/

大寫 I 會在大量刪除前詢問一次;先用 find old-build -maxdepth 2 -print 檢查。

怎麼確認有做對

  • 執行 pwd 與 ls -la 確認目前位置。
  • 複製或搬移後用 cmp、diff 或 checksum 抽查。
  • 刪除後確認應用程式、服務與備份均正常。

常見錯誤

  • 目的路徑結尾是否有 / 造成層級不同。
  • 萬用字元沒有包含隱藏檔。
  • 把權限錯誤直接用 sudo 繞過,卻沒處理擁有者。
  • 在腳本依賴 cp -i 或 mv -i 的人工詢問。

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章