LinuxMastery By asdlkfj

LinuxMastery 02: 檔案操作的生殺大權 cp, mv, rm

檔案管理的藝術

在 Linux 伺服器上,我們大部分的時間都在處理檔案:複製設定檔備份、移動 Log 檔、刪除暫存檔。這些操作在 GUI 上只是拖拉放,但在 CLI 下,每一個指令都需要精確無誤,因為 Linux (特別是 root 權限) 不會問你「確定要刪除嗎?」(除非你叫它問)。

核心指令詳解

  1. cp (copy)

    • 用途:複製檔案或目錄。
    • 關鍵參數
      • -r (recursive):遞迴複製。如果要複製整個資料夾,必須加這個參數,否則會報錯。
      • -p (preserve):保留原始檔案的屬性 (權限、擁有者、時間)。這在備份系統檔時至關重要。
    • 範例
      # 備份設定檔,並保留原始權限
      cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
      # 複製整個網站目錄
      cp -r /var/www/html /var/www/html_backup
      
  2. mv (move)

    • 用途:移動檔案,或者「重新命名」。在 Linux 中,改名其實就是將檔案搬移到同一個目錄下的新名稱。
    • 範例
      # 將檔案移動到 /tmp
      mv file.txt /tmp/
      # 將 old.txt 改名為 new.txt
      mv old.txt new.txt
      
  3. rm (remove)

    • 用途:刪除檔案。這是最危險的指令。
    • 關鍵參數
      • -r:遞迴刪除目錄。
      • -f (force):強制刪除,不跳出確認提示。若檔案不存在也不會報錯。
    • 災難預防
      rm -rf / 是傳說中的毀滅指令。為了避免手滑,建議在刪除重要檔案時加上 -i (interactive),系統會逐一詢問確認。
      rm -i critical_config.conf
      

實戰心法

在使用萬用字元 (Wildcard) 如 * 時要極度小心。例如 rm -rf * 會刪除當前目錄下所有東西。建議先用 ls 確認選到了什麼,再執行 rm。例如想刪除所有 .log 檔,先打 ls *.log 看看,確認無誤後再把 ls 改成 rm