前言
mv命令是move的縮寫,可以用來移動檔案或者將檔案改名(move (rename) file是linux系統下常用的命令,經常用來備份檔案或者目錄。
命令格式:
mv [選項] 原始檔或目錄 目標檔案或目錄
mv 也是 linux 下乙個使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高階用法呢?
1. 基本用法
這些都是很基本的用法,無需贅述。下面介紹一些更高階的用法。
2. 列印操作資訊
我們如果只移動一兩個或少數幾個檔案/目錄時,暫且還可以去目標位置去檢視檔案是否移動成功。但如果有千百個檔案呢?如何在不去目標位置檢視的情況下知道我們的操作是否已經成功了呢?我們可以加上 -v 選項。
[alvin@vm_0_16_centos mv_test]$ mv -v *.txt /home/alvin/test/mv_test/des/
『file1.txt' -> 『/home/alvin/test/mv_test/des/file1.txt'
『file2.txt' -> 『/home/alvin/test/mv_test/des/file2.txt'
『file3.txt' -> 『/home/alvin/test/mv_test/des/file3.txt'
『file4.txt' -> 『/home/alvin/test/mv_test/des/file4.txt'
『file5.txt' -> 『/home/alvin/test/mv_test/des/file5.txt'
當然,此方法同樣適用於移動目錄。
3. 使用互動模式
在預設情況下,我們移動檔案/目錄時,不會有任何提示。如果在目標位置我們有個相同名字的檔案/目錄,mv 命令也不會提示而直接替換原來的檔案。而這樣的操作,有時可能會造成災難性的後果。
在這種情況下,我們可以加乙個 -i 選項,當目標程式設計客棧位置有相同名字的檔案時,它將會進行提示。如果你確認要覆蓋目標檔案,鍵入 y 即可。
[alvin@vm_0_16_centos mv_test]$ mv -i file1.txt /home/alvin/test/mv_test/des/
mv: overwrite 『/home/alvin/test/mv_test/des/file1.txt'? y
4. 不覆蓋同名檔案
如果目標位置有同名檔案,我們不希望它被覆蓋,可以加上 -n 選項。
[alvin@vm_0_16_centos mv_test]$ ll *.txt des/*.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 file2.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:35 file3.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 des/file1.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:27 des/file2.txt
[alvin@vm_0_16_centos mv_test]$ mv -nv *.txt /home/alvin/test/mv_test/des/
『file3.txt' -> 『/home/alvin/test/mv_test/des/file3.txt' #目標位置沒有file3.txt檔案,所以成功移動
[alvin@vm_0_16_centos mv_test]$ ls
des file2.txt
5. 使用更新選項
當目標位置有同名檔案/目錄時,我們只希望原始檔比目標檔案時間戳更新時,才進行覆蓋,否則不執行。這種情況下,我們可以使用 -u 選項。
[alvin@vm_0_16_centos mv_test]$ ll *.txt des/*.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 file1.txt #原始檔比目標檔案時間戳更新
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 file2.txt #原始檔比目標檔案時間戳更舊
-rw-rw-r-- 1 alvin alvin 0 feb 8 16:53 des/file1.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:27 des/file2.txt
[alvin@vm_0_16_centos mv_test]$ mv -uv *.txt /home/alvin/test/mv_test/des/
『file1.txt' -> 『/home/alvin/test/mv_test/des/file1.txt' #只有時間戳更新的檔案被替換
[alvin@vm_0_16_centos mv_test]$ ls
des file2.txt
6. 覆蓋前建立備份
目標位置已經有了同名檔案,如果直接覆蓋總覺得有點不踏實,萬一現在的決定是錯的呢?有沒可能在覆蓋之前,先將目標檔案進行備份?答案是肯www.cppcns.com定的,加乙個 -b 選項即可。
[alvin@vm_0_16_centos mv_test]$ mv -bv *.txt /home/alvin/test/mv_test/des/
『file1.txt' -> 『/home/alvin/test/mv_test/des/file1.txt' (backup: 『/home/alvin/test/mv_test/des/file1.txt~')
『file2.txt' -> 『/home/alvin/test/mv_test/程式設計客棧des/file2.txt' (backup: 『/home/alvin/test/mv_test/des/file2.txt~')
[alvin@vm_0_16_centos mv_test]$ ll des/
total 0
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:41 file1.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 file1.txt~
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:26 file2.txt
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:27 file2.txt~
-rw-rw-r-- 1 alvin alvin 0 feb 8 17:35 file3.txt
可以看到,在覆蓋之前,會將目標檔案備份為乙個帶波浪號 ~ 的檔案,同時細心的讀者也會注意到,覆蓋後檔案與備份檔案的時間戳不一樣。
以上就是 mv 命令的一些更高階用法,靈活使用的話會為自己的工作效率提高乙個檔次,在同事面前也更能裝逼。
總結本文標題: linux中mv命令的高階用法示例
本文位址:
mv 覆蓋並替換 Linux下mv命令高階用法
mv 也是 linux 下乙個使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高階用法呢?移動乙個 多個檔案 移動乙個 多個目錄 重新命名檔案 目錄。這些都是很基本的用法,無需贅述。下面介紹一些更高階的用法。我們如果只移動一兩個或少數幾個檔案 目錄時,暫且還可以去目標位置去檢視檔案是否移動...
linux必會的命令 mv
1.移動乙個資料夾 hanlujie資料夾,移動到 usr xiaoxiao目錄 mv 檔名 目錄 目錄2 2.移動乙個檔案 xiaohan.ini 移動到 usr xiaoxiao目錄 mv 檔名 目錄 目錄2 3.當前目錄為total.tar.gz移動到 usr xiaoxiao目錄,並重命名為...
Linux命令簡介 mv
mv 命令功能是用來移動檔案或更改檔名,是 linux 系統下常用的命令,經常用來備份檔案或者目錄。mv 命令根據第二個引數型別 是目標檔案還是目標目錄 決定執行將檔案重新命名或將其移至乙個新的目錄中。當第二個引數型別是檔案時,mv 命令完成檔案重新命名,此時,原始檔只能有乙個 也可以是源目錄名 它...