Linux mv 移動與重新命名檔案

mvMove 的縮寫,它有兩個主要功能:

  1. 移動 檔案或目錄的位置(剪下並貼上)。
  2. 重新命名 檔案或目錄(原地移動 = 改名)。

基本用法

mv [來源] [目標]

1. 移動檔案

file.txt 移動到 Documents 資料夾中。

mv file.txt Documents/

2. 重新命名檔案 (Rename)

如果「來源」與「目標」在同一個目錄下,mv 的行為就是 改名

# 將 old_name.txt 改名為 new_name.txt
mv old_name.txt new_name.txt

3. 移動並同時改名

你當然可以把檔案移到別的地方,順便換個名字。

# 把 file.txt 移到 backup 資料夾,並改名為 file.txt.bak
mv file.txt backup/file.txt.bak

4. 移動目錄

mv 移動目錄時 不需要cp 那樣加 -r 參數,直接移就可以了。

# 把 folder1 移動到 folder2 裡面
mv folder1 folder2/

常用參數

-i:覆寫前詢問 (Interactive)

cp 一樣,如果目標位置已經有同名檔案,mv 預設會直接覆蓋!加上 -i 可以讓系統在覆蓋前先問你一下。

mv -i file.txt existing_file.txt

-f:強制移動 (Force)

-i 相反。如果目標檔案唯讀或有其他狀況導致系統詢問,-f 會強制覆蓋不詢問。

-n:不覆蓋已存在的檔案 (No clobber)

如果目標檔案已經存在,則 不要 執行移動操作(保護目標檔案)。

mv -n file.txt existing_file.txt
# 因為 existing_file.txt 存在,所以什麼事都不會發生

常見情境

使用萬用字元移動多個檔案

把目前目錄下所有的圖片檔 (.jpg) 都移到 Photos 資料夾:

mv *.jpg Photos/