共計(jì) 3085 個(gè)字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
這篇文章主要介紹了如何在 Linux 下使用 mv 命令,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
mv 也是 Linux 下一個(gè)使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高級用法呢?
1. 基本用法
移動(dòng)一個(gè) / 多個(gè)文件;
移動(dòng)一個(gè) / 多個(gè)目錄;
重命名文件 / 目錄。
這些都是很基本的用法,無需贅述。下面介紹一些更高級的用法。
2. 打印操作信息
我們?nèi)绻灰苿?dòng)一兩個(gè)或少數(shù)幾個(gè)文件 / 目錄時(shí),暫且還可以去目標(biāo)位置去查看文件是否移動(dòng)成功。但如果有千百個(gè)文件呢? 如何在不去目標(biāo)位置查看的情況下知道我們的操作是否已經(jīng)成功了呢? 我們可以加上 -v 選項(xiàng)。
[alvin@VM_0_16_centos mv_test]$ mv -v *.txt /home/alvin/test/mv_test/des/ lsquo;file1.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file1.txt rsquo; lsquo;file2.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file2.txt rsquo; lsquo;file3.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file3.txt rsquo; lsquo;file4.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file4.txt rsquo; lsquo;file5.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file5.txt rsquo;
當(dāng)然,此方法同樣適用于移動(dòng)目錄。
3. 使用交互模式
在默認(rèn)情況下,我們移動(dòng)文件 / 目錄時(shí),不會(huì)有任何提示。如果在目標(biāo)位置我們有個(gè)相同名字的文件 / 目錄,mv 命令也不會(huì)提示而直接替換原來的文件。而這樣的操作,有時(shí)可能會(huì)造成災(zāi)難性的后果。
在這種情況下,我們可以加一個(gè) -i 選項(xiàng),當(dāng)目標(biāo)位置有相同名字的文件時(shí),它將會(huì)進(jìn)行提示。如果你確認(rèn)要覆蓋目標(biāo)文件,鍵入 y 即可。
[alvin@VM_0_16_centos mv_test]$ mv -i file1.txt /home/alvin/test/mv_test/des/ mv: overwrite lsquo;/home/alvin/test/mv_test/des/file1.txt rsquo;? y
4. 不覆蓋同名文件
如果目標(biāo)位置有同名文件,我們不希望它被覆蓋,可以加上 -n 選項(xiàng)。
[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/ lsquo;file3.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file3.txt rsquo; # 目標(biāo)位置沒有 file3.txt 文件,所以成功移動(dòng) [alvin@VM_0_16_centos mv_test]$ ls des file2.txt
5. 使用更新選項(xiàng)
當(dāng)目標(biāo)位置有同名文件 / 目錄時(shí),我們只希望源文件比目標(biāo)文件時(shí)間戳更新時(shí),才進(jìn)行覆蓋,否則不執(zhí)行。這種情況下,我們可以使用 -u 選項(xiàng)。
[alvin@VM_0_16_centos mv_test]$ ll *.txt des/*.txt -rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file1.txt #源文件比目標(biāo)文件時(shí)間戳更新 -rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file2.txt # 源文件比目標(biāo)文件時(shí)間戳更舊 -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/ lsquo;file1.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file1.txt rsquo; # 只有時(shí)間戳更新的文件被替換 [alvin@VM_0_16_centos mv_test]$ ls des file2.txt
6. 覆蓋前創(chuàng)建備份
目標(biāo)位置已經(jīng)有了同名文件,如果直接覆蓋總覺得有點(diǎn)不踏實(shí),萬一現(xiàn)在的決定是錯(cuò)的呢? 有沒可能在覆蓋之前,先將目標(biāo)文件進(jìn)行備份? 答案是肯定的,加一個(gè) -b 選項(xiàng)即可。
[alvin@VM_0_16_centos mv_test]$ mv -bv *.txt /home/alvin/test/mv_test/des/ lsquo;file1.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file1.txt rsquo; (backup: lsquo;/home/alvin/test/mv_test/des/file1.txt~ rsquo;) lsquo;file2.txt rsquo; - lsquo;/home/alvin/test/mv_test/des/file2.txt rsquo; (backup: lsquo;/home/alvin/test/mv_test/des/file2.txt~ rsquo;) [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
可以看到,在覆蓋之前,會(huì)將目標(biāo)文件備份為一個(gè)帶波浪號 ~ 的文件,同時(shí)細(xì)心的讀者也會(huì)注意到,覆蓋后文件與備份文件的時(shí)間戳不一樣。
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“如何在 Linux 下使用 mv 命令”這篇文章對大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!