移動文件和目錄是您在 Linux 系統上常常須要執行的最基本的任務之一。命令行
mv
命令(簡稱 move)用於將文件和目錄從一個位置重命名並移動到另外一個位置。 命令的語法以下:code
mv [OPTIONS] SOURCE DESTINATION
Source 能夠是一個或多個文件或目錄
,DESTINATION 只能是是單個文件或目錄
。it
多個文件
或目錄做爲SOURCE, the 、DESTINATION必須是一個目錄
。因此文件被移動到目標目錄重命名文件
.內部DESTINATION目錄
Note: 要移動文件或目錄,您須要對 SOURCE 和 DESTINATION 都具備寫權限。 不然,您將收到一個被拒絕的權限錯誤。class
例如,要將文件 file1從當前工做目錄文件夾移動到 / tmp 目錄,您能夠運行:pdf
mv file1 /tmp
要重命名一個文件,你須要指定目標文件名:sed
mv file1 file2
移動目錄的語法與移動文件時相同。 在下面的示例中,若是 dir2目錄存在,則該命令將 dir1移動到 dir2中。 若是 dir2不存在,dir1將被重命名爲 dir2:file
mv dir1 dir2
若要移動多個文件和目錄,請指定要移動的文件做爲源文件。 例如,要將 file1和 file2文件移動到 dir1目錄,您能夠輸入:終端
mv file1 file2 dir1
命令也容許你使用模式匹配。 例如,要將全部 pdf 文件從工做目錄目錄移動到 ~ / Documents 目錄,你可使用:權限
mv *.pdf ~/Documents
mv
命令接受幾個影響默認命令行爲的選項。語法
在某些 Linux 發行版中,mv 多是 mv 命令的別名,並帶有一組自定義選項。 例如,在 CentOS 中,mv 是 mv-i 的別名。 您可使用 type 命令查看 mv 是不是別名:
type mv
若是 mv 是別名,輸出結果以下:
mv is aliased to `mv -i'
若是給出了衝突的選項,則最後一個選項優先。
默認狀況下,若是目標文件存在,它將被覆蓋。要提示確認,使用-i 選項:
mv -i file1 /tmp
返回結果就是
mv: overwrite '/tmp/file1'?
覆蓋文件類型 y 或 Y。
若是您嘗試覆蓋只讀文件,mv 命令將提示您是否要覆蓋該文件:
mv -i file1 /tmp mv: replace '/tmp/file1', overriding mode 0400 (r--------)?
爲了不被提示,請使用-f 選項:
mv -f file1 /tmp
當您須要覆蓋多個只讀文件時,此選項特別有用。
n 選項告訴 mv 永遠不要覆蓋任何現有文件:
mv -f file1 /tmp
若是文件1存在,上面的命令將不執行任何操做,不然它將把文件移動到 / tmp 目錄。
若是目標文件存在,您可使用-b 選項建立它的備份:
mv -b file1 /tmp
備份文件將具備與原始文件相同的名稱,並附加一個波浪號(~)。
使用 ls 命令驗證備份是否已建立:
/tmp/file1 /tmp/file1~
另外一個可能有用的選項是-v。 當使用此選項時,命令輸出每一個移動文件的名稱:
mv -i file1 /tmp renamed 'file1' -> '/tmp/file1'
mv
命令用於移動和重命名文件和目錄。
有關 mv 命令的詳細信息,請查看手冊頁或在終端中鍵入 man mv
。
被命令行嚇到的新 Linux 用戶可使用 GUI 文件管理器來移動他們的文件。