【Linux】一步一步学Linux——mv命令(30)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 附錄
01. 命令概述
mv命令是“move”單詞的縮寫,其功能大致和英文含義一樣,可以移動文件或重命名文件。經常用來備份文件或者目錄。
02. 命令格式
mv [選項]... 源文件 目標文件 mv [選項]... 源文件... 目錄 mv [選項]... --target-directory=DIRECTORY SOURCE...03. 常用選項
將源文件重命名為目標文件,或將源文件移動至指定目錄。長選項必須使用的參數對于短選項時也是必需使用的。--backup[=CONTROL] 為每個已存在的目標文件創建備份-b 類似--backup 但不接受參數-f, --force 覆蓋前不詢問-i, --interactive 覆蓋前詢問-n, --no-clobber 不覆蓋已存在文件 如果您指定了-i、-f、-n 中的多個,僅最后一個生效。--strip-trailing-slashes 去掉每個源文件參數尾部的斜線-S, --suffix=SUFFIX 替換常用的備份文件后綴-t, --target-directory=DIRECTORY 將所有參數指定的源文件或目錄移動至 指定目錄-T, --no-target-directory 將目標文件視作普通文件處理-u, --update 只在源文件文件比目標文件新,或目標文件不存在時才進行移動-v, --verbose 詳細顯示進行的步驟--help 顯示此幫助信息并退出--version 顯示版本信息并退出備份文件的后綴為"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX 環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環境 變量來選擇。以下是可用的變量值:none, off 不進行備份(即使使用了--backup 選項)numbered, t 備份文件加上數字進行排序existing, nil 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份simple, never 永遠使用普通方式備份04. 參考示例
4.1 重命名文件
[itcast@localhost test]$ ls passwd [itcast@localhost test]$ mv passwd password [itcast@localhost test]$ ls password [itcast@localhost test]$4.2 移動文件到指定目錄中
[itcast@localhost test]$ ls password [itcast@localhost test]$ mkdir dir [itcast@localhost test]$ mv password dir/ [itcast@localhost test]$4.3 批量移動文件到指定目錄中
[itcast@localhost test]$ mv a b c d dir/ [itcast@localhost test]$ tree dir dir ├── a ├── b ├── c ├── d └── password0 directories, 5 files [itcast@localhost test]$4.4 批量移動文件到指定目錄中 -t選項
[itcast@localhost test]$ ls a b c d dir [itcast@localhost test]$ mv -t dir a b c d [itcast@localhost test]$ tree dir dir ├── a ├── b ├── c └── d0 directories, 4 files4.5 覆蓋前詢問
當移動文件時,目標位置恰好有同名文件,這時 mv 命令會覆蓋掉原來的文件。如果想產生一個關于覆蓋文件的提示,可以使用 -i 選項。
[itcast@localhost test]$ ls a dir passwd [itcast@localhost test]$ mv -i passwd a mv:是否覆蓋"a"? y [itcast@localhost test]$該提示會告訴我們目標位置處是否有同名文件。如果按 y 鍵,那么該文件將會被覆蓋,否則不會。
4.6 覆蓋前不詢問
[itcast@localhost test]$ ls a dir passwd [itcast@localhost test]$ mv -f passwd a [itcast@localhost test]$ ls a dir [itcast@localhost test]$4.7 移動目錄
[itcast@localhost test]$ ls a dir [itcast@localhost test]$ mkdir dir1 [itcast@localhost test]$ ls a dir dir1 [itcast@localhost test]$ mv dir1/ dir [itcast@localhost test]$ ls a dir [itcast@localhost test]$如果目錄dir不存在,將目錄dir1改名為dir;否則,將dir1移動到dir中。
4.8 移動當前文件夾下的所有文件到上一級目錄
[itcast@localhost test]$ ls a dir [itcast@localhost test]$ mv * ../ [itcast@localhost test]$ ls [itcast@localhost test]$ ls ../ a dir password test 公共 模板 視頻 圖片 文檔 下載 音樂 桌面 [itcast@localhost test]$4.9 將當前dir目錄中b文件移動到當前目錄中
[itcast@localhost test]$ mv dir/b ./ [itcast@localhost test]$ ls a b dir [itcast@localhost test]$4.10 創建備份文件
默認情況下,移動文件將會覆蓋已存在的目標文件。但是如果移動錯了文件,而目標文件已經被新的文件覆蓋了,這時應該怎么辦才好呢?可以用 -b 選項,該選項會在新文件覆蓋舊文件時將舊文件做備份。
[itcast@localhost test]$ ls a a.bak~ dir [itcast@localhost test]$ mv -bv a dir/ "a" -> "dir/a" (備份:"dir/a~") [itcast@localhost test]$ ls dir/ a a~ a.bak c d dir1 [itcast@localhost test]$-b 不接受參數,mv會去讀取環境變量VERSION_CONTROL來作為備份策略。
–backup該選項指定如果目標文件存在時的動作,共有四種備份策略:
VERSION_CONTROL=none或off : 不備份。
VERSION_CONTROL=numbered或t:數字編號的備份
VERSION_CONTROL=existing或nil:如果存在以數字編號的備份,則繼續編號備份m+1…n:
執行mv操作前已存在以數字編號的文件log2.txt.1,那么再次執行將產生log2.txt2,以次類推。如果之前沒有以數字編號的文件,則使用下面講到的簡單備份。
VERSION_CONTROL=simple或never:使用簡單備份:在被覆蓋前進行了簡單備份,簡單備份只能有一份,再次被覆蓋時,簡單備份也會被覆蓋。
4.11 詳細顯示進行的步驟
[itcast@localhost test]$ ls a.bak a.bak~ dir [itcast@localhost test]$ mv -v a.bak dir/ "a.bak" -> "dir/a.bak" [itcast@localhost test]$4.12 更新選項
只在源文件文件比目標文件新,或目標文件不存在時才進行移動
[itcast@localhost test]$ ls -l a.bak dir/a.bak -rw-rw-r-- 1 itcast itcast 0 7月 12 23:33 a.bak -rw-rw-r-- 1 itcast itcast 0 7月 12 23:26 dir/a.bak [itcast@localhost test]$ mv -u a.bak dir/ [itcast@localhost test]$ ls -l dir/a.bak -rw-rw-r-- 1 itcast itcast 0 7月 12 23:33 dir/a.bak [itcast@localhost test]$4.13 不覆蓋已存在文件
[itcast@localhost test]$ ls dir/ a a.bak c d dir1 [itcast@localhost test]$ ls a a.bak~ dir [itcast@localhost test]$ mv -n a dir/ [itcast@localhost test]$ ls a a.bak~ dir [itcast@localhost test]$05. 附錄
參考:【Linux】一步一步學Linux系列教程匯總
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——mv命令(30)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——l
- 下一篇: 【Linux】一步一步学Linux——c