自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Linux 下乾坤大挪移?

系統(tǒng) Linux
mv 也是 Linux 下一個使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高級用法呢?

[[258413]]

 mv 也是 Linux 下一個使用頻率非常高的命令,但除了一些基本用法,你還知道它的哪些高級用法呢?

1. 基本用法

  1. 移動一個/多個文件;
  2. 移動一個/多個目錄;
  3. 重命名文件/目錄。

這些都是很基本的用法,無需贅述。下面介紹一些更高級的用法。

2. 打印操作信息

我們?nèi)绻灰苿右粌蓚€或少數(shù)幾個文件/目錄時,暫且還可以去目標位置去查看文件是否移動成功。但如果有千百個文件呢?如何在不去目標位置查看的情況下知道我們的操作是否已經(jīng)成功了呢?我們可以加上 -v 選項。

  1. [alvin@VM_0_16_centos mv_test]$ mv -v *.txt /home/alvin/test/mv_test/des/ 
  2. ‘file1.txt’ -> ‘/home/alvin/test/mv_test/des/file1.txt’ 
  3. ‘file2.txt’ -> ‘/home/alvin/test/mv_test/des/file2.txt’ 
  4. ‘file3.txt’ -> ‘/home/alvin/test/mv_test/des/file3.txt’ 
  5. ‘file4.txt’ -> ‘/home/alvin/test/mv_test/des/file4.txt’ 
  6. ‘file5.txt’ -> ‘/home/alvin/test/mv_test/des/file5.txt’ 

當(dāng)然,此方法同樣適用于移動目錄。

3. 使用交互模式

在默認情況下,我們移動文件/目錄時,不會有任何提示。如果在目標位置我們有個相同名字的文件/目錄,mv 命令也不會提示而直接替換原來的文件。而這樣的操作,有時可能會造成災(zāi)難性的后果。

在這種情況下,我們可以加一個 -i 選項,當(dāng)目標位置有相同名字的文件時,它將會進行提示。如果你確認要覆蓋目標文件,鍵入 y 即可。

  1. [alvin@VM_0_16_centos mv_test]$ mv -i file1.txt /home/alvin/test/mv_test/des/ 
  2. mv: overwrite ‘/home/alvin/test/mv_test/des/file1.txt’? y 

4. 不覆蓋同名文件

如果目標位置有同名文件,我們不希望它被覆蓋,可以加上 -n 選項。

  1. [alvin@VM_0_16_centos mv_test]$ ll *.txt des/*.txt 
  2. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 file2.txt 
  3. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:35 file3.txt 
  4. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 des/file1.txt 
  5. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:27 des/file2.txt 
  6. [alvin@VM_0_16_centos mv_test]$ mv -nv *.txt /home/alvin/test/mv_test/des/ 
  7. ‘file3.txt’ -> ‘/home/alvin/test/mv_test/des/file3.txt’    #目標位置沒有file3.txt文件,所以成功移動 
  8. [alvin@VM_0_16_centos mv_test]$ ls 
  9. des  file2.txt 

5. 使用更新選項

當(dāng)目標位置有同名文件/目錄時,我們只希望源文件比目標文件時間戳更新時,才進行覆蓋,否則不執(zhí)行。這種情況下,我們可以使用 -u 選項。

  1. [alvin@VM_0_16_centos mv_test]$ ll *.txt des/*.txt 
  2. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 file1.txt    #源文件比目標文件時間戳更新 
  3. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 file2.txt    #源文件比目標文件時間戳更舊 
  4. -rw-rw-r-- 1 alvin alvin 0 Feb  8 16:53 des/file1.txt 
  5. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:27 des/file2.txt 
  6. [alvin@VM_0_16_centos mv_test]$ mv -uv *.txt /home/alvin/test/mv_test/des/ 
  7. ‘file1.txt’ -> ‘/home/alvin/test/mv_test/des/file1.txt’    #只有時間戳更新的文件被替換 
  8. [alvin@VM_0_16_centos mv_test]$ ls 
  9. des  file2.txt 

6. 覆蓋前創(chuàng)建備份

目標位置已經(jīng)有了同名文件,如果直接覆蓋總覺得有點不踏實,萬一現(xiàn)在的決定是錯的呢?有沒可能在覆蓋之前,先將目標文件進行備份?答案是肯定的,加一個 -b 選項即可。

  1. [alvin@VM_0_16_centos mv_test]$ mv -bv *.txt /home/alvin/test/mv_test/des/ 
  2. ‘file1.txt’ -> ‘/home/alvin/test/mv_test/des/file1.txt’ (backup: ‘/home/alvin/test/mv_test/des/file1.txt~’) 
  3. ‘file2.txt’ -> ‘/home/alvin/test/mv_test/des/file2.txt’ (backup: ‘/home/alvin/test/mv_test/des/file2.txt~’) 
  4. [alvin@VM_0_16_centos mv_test]$ ll des/ 
  5. total 0 
  6. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:41 file1.txt 
  7. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 file1.txt~ 
  8. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:26 file2.txt 
  9. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:27 file2.txt~ 
  10. -rw-rw-r-- 1 alvin alvin 0 Feb  8 17:35 file3.txt 

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

以上就是 mv 命令的一些更高級用法,靈活使用的話會為自己的工作效率提高一個檔次,在同事面前也更能顯擺。

本文授權(quán)轉(zhuǎn)載自公眾號「良許Linux」。良許,世界500強外企Linux開發(fā)工程師,公眾號里分享大量Linux干貨,歡迎關(guān)注!

 

責(zé)任編輯:武曉燕 來源: 良許Linux
相關(guān)推薦

2013-10-16 16:15:26

單鏈表

2019-04-11 13:34:24

2016-08-16 08:26:19

Linuxsignalsigaction

2014-12-23 09:37:09

Linuxrsync

2017-01-05 12:21:00

LinuxPyCharm安裝

2011-03-09 15:54:34

LAMP

2023-09-24 19:29:44

LinuxWebP圖像

2015-11-24 13:27:35

Linuxcool-retro-復(fù)古終端

2019-03-28 08:00:00

Linux磁盤IO監(jiān)控存儲設(shè)備

2017-08-07 16:41:39

LinuxOpenCV

2017-05-08 18:10:54

2014-03-20 10:31:02

Linuxbin

2010-08-25 13:46:28

入侵檢測IDS

2009-02-16 20:16:52

Linux網(wǎng)卡硬件查看

2022-03-09 14:43:38

LinuxDLNA

2009-07-17 14:26:40

在Linux下配置Jy

2009-02-16 19:47:03

LinuxBIOS備份

2010-01-26 11:06:50

C++開發(fā)

2019-06-10 15:50:54

LinuxNTP命令

2011-01-11 14:04:26

點贊
收藏

51CTO技術(shù)棧公眾號