如何在 Linux 下乾坤大挪移?

2021-09-13 23:45:05 字數 3130 閱讀 5609

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-- 1alvin alvin 0feb 817:26file2.txt

-rw-rw-r-- 1alvin alvin 0feb 817:35file3.txt

-rw-rw-r-- 1alvin alvin 0feb 817:26des/file1.txt

-rw-rw-r-- 1alvin alvin 0feb 817:27des/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-- 1alvin alvin 0feb 817:26file1.txt #原始檔比目標檔案時間戳更新

-rw-rw-r-- 1alvin alvin 0feb 817:26file2.txt #原始檔比目標檔案時間戳更舊

-rw-rw-r-- 1alvin alvin 0feb 816:53des/file1.txt

-rw-rw-r-- 1alvin alvin 0feb 817:27des/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. 覆蓋前建立備份

目標位置已經有了同名檔案,如果直接覆蓋總覺得有點不踏實,萬一現在的決定是錯的呢?有沒可能在覆蓋之前,先將目標檔案進行備份?答案是肯定的,加乙個 -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

可以看到,在覆蓋之前,會將目標檔案備份為乙個帶波浪號 ~ 的檔案,同時細心的讀者也會注意到,覆蓋後檔案與備份檔案的時間戳不一樣。

如何在 Linux 下乾坤大挪移?

mv 也是 linux 下乙個使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高階用法呢?1 移動乙個 多個檔案 2 移動乙個 多個目錄 3 重新命名檔案 目錄。這些都是很基本的用法,無需贅述。下面介紹一些更高階的用法。我們如果只移動一兩個或少數幾個檔案 目錄時,暫且還可以去目標位置去檢視...

基金轉換 乾坤大挪移

記得武俠裡面的絕學 乾坤大挪移 麼?夏洛激動得補充道,轉換基本上就是那個意思。以前夏洛每每看到在危急時刻,主人公使出一招 乾坤大挪移 只是輕鬆作了個調換,卻能夠消大象於無形,剎那間就可能風雲變幻 扭轉乾坤,感覺頗得道家之味。喏,轉換就照這個去理解,夏洛得意地一挑眉,只要你選對轉換時機,選對轉換目標就...

SQL行列乾坤大挪移

今天dalao郵件裡需要新增一張每月累計長長的圖,可是,拿到手上的sql匯出資料不符合我最愛的pyecharts的資料輸入格式,頭大。獲得到的資料 日期種類 數量9012 01 01 香蕉10 9012 01 01 蘋果99 9012 01 01梨9 9012 01 02 香蕉100 9012 01...