Heim > System-Tutorial > LINUX > Hauptteil

Lesen Sie diesen Artikel! Ich weiß nur, wie man den Linux-Befehl mv wirklich verwendet

WBOY
Freigeben: 2024-02-12 12:09:14
nach vorne
1061 Leute haben es durchsucht

Wie wir alle wissen: In einem Linux-System ist alles eine Datei!

看了这篇文章!我才知道 Linux mv 命令的真正使用方法

Daher ist der Betrieb und die Verwaltung von Dateien in Linux-Systemen besonders wichtig. Heute stelle ich Ihnen einen Dateiverwaltungsbefehl mv vor.

In diesem Artikel wird hauptsächlich die spezifische Verwendung des MV-Befehls und die Punkte erläutert, auf die in der Praxis geachtet werden sollte. Lassen Sie uns gemeinsam den MV-Befehl anhand von Theorie + Beispielen studieren und lernen.

mv-Einführung

Der Befehl mv ist die Abkürzung für move und gehört auch zu den am häufigsten verwendeten Befehlen in Linux-Systemen. Der Befehl mv wird häufig zum Verschieben und Umbenennen von Dateien oder Verzeichnissen verwendet. Oder verschieben Sie eine Datei von einem Verzeichnis in ein anderes. Wenn Sie eine Datei in eine vorhandene Zieldatei verschieben, wird der Inhalt der Zieldatei durch den Inhalt der Datei überschrieben.

Wenn die Quelle eine Datei und das Ziel ein Verzeichnis ist, verschiebt mv den Speicherort der Datei. Wenn die Quelle ein Verzeichnis ist, kann das Ziel nur ein Verzeichnis (keine Datei) sein, und mv benennt das Verzeichnis um.

Wenn Sie den Befehl

mv zum Verschieben von Dateien verwenden, werden die folgenden vier unterschiedlichen Ergebnisse angezeigt, wenn die Ziele unterschiedlich sind:

  • Wenn als Ziel ein bestimmter Pfad angegeben ist, wird die Quelldatei in dieses Verzeichnis verschoben und der Dateiname bleibt unverändert.
  • Wenn das Ziel kein Verzeichnis ist, wird der Name der Quelldatei (es kann nur einer sein) zum Namen der Zieldatei. Wenn eine Datei mit demselben Namen vorhanden ist, wird die vorhandene Datei mit demselben Namen überschrieben.
  • Wenn sich die Quelldatei und die Zieldatei im selben Verzeichnis befinden, besteht die Funktion von mv darin, den Dateinamen zu ändern.
  • Wenn das Ziel ein Verzeichnis ist, können mehrere Quelldateien oder -verzeichnisse vorhanden sein, und alle Quelldateien werden in das Zielverzeichnis verschoben. Und alle Dateien behalten ihre vorherigen Dateinamen.

Grammatikformat

mv [选项] 源文件或目录 目标文件或目录
mv [options] source destination
Nach dem Login kopieren

Optionsbeschreibung

-b   #当目标文件存在时,覆盖之前创建一个备份
-f   #如果移动的文件或目录与目标重复,则直接覆盖(无需确认)
-i   #交互式操作,覆盖前会提示用户进行确认操作,用户通过输入Y/N来确认是否覆盖
-u   #若目标文件已存在,且与需移动的文件同名,只有在源文件比目标文件较新时,才会更新目标文件
-t   #指定mv的目标目录,此选项使用于移动多个文件到一个目录的情况,目标文件在前,源文件在后。
-S:#为备份文件指定(自定义的)后缀
-n  #不覆盖任何现有文件
-T  #将目标当作普通文件,而不是目录
-v  #详细输出命令的执行过程信息
Nach dem Login kopieren

Anwendungsbeispiele

Dateien (Verzeichnisse) umbenennen

Befehlsformat: mv 源文件 目标文件 或 mv 源目录 目标目录

Hinweis: Wenn wir diesen Befehl verwenden, müssen wir sicherstellen, dass sich die Quelldatei (Verzeichnis) und die Zieldatei (Verzeichnis) im selben Verzeichnis befinden und die Zieldatei (Verzeichnis) nicht existiert, da sonst die Wirkung von Die Verwendung dieses Befehls führt zum Umbenennen einer Datei (Verzeichnis) zum Verschieben.

Zuerst erstellen wir die zum Testen benötigten Dateien und Verzeichnisse

[root@CentOS7-1 mv]# ll
total 0
[root@CentOS7-1 mv]# touch mvfiles
[root@CentOS7-1 mv]# mkdir mvdir
[root@CentOS7-1 mv]# ll
total 0
drwxr-xr-x 2 root root 6 Jan  8 09:03 mvdir
-rw-r--r-- 1 root root 0 Jan  8 09:02 mvfiles
Nach dem Login kopieren

Umbenennungsvorgang durchführen

[root@CentOS7-1 mv]# mv mvfiles mvfilessssss
[root@CentOS7-1 mv]# mv mvdir mvdirectory
[root@CentOS7-1 mv]# ll
total 0
drwxr-xr-x 2 root root 6 Jan  8 09:03 mvdirectory
-rw-r--r-- 1 root root 0 Jan  8 09:02 mvfilessssss
Nach dem Login kopieren

Wenn Sie den Befehlsausführungsprozess benötigen, können Sie Parameter hinzufügen-v

[root@CentOS7-1 mv]# mv -v mvfilessssss mvfiles
‘mvfilessssss’ -> ‘mvfiles’
[root@CentOS7-1 mv]# mv -v mvdirectory mvdir
‘mvdirectory’ -> ‘mvdir’
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法
Verschieben Sie einzelne oder mehrere Dateien (Verzeichnisse) gleichzeitig

Befehlsformat: mv 源文件(目录)1 源文件(目录)2 目标目录 或 mv *文件(目录) 目标目录

Es gibt zwei Möglichkeiten, mehrere Dateien (Verzeichnisse) gleichzeitig zu verschieben:

  • 第一种命令格式可以把多个文件(目录)同时移动到目标目录下,文件(目录)之间以空格分隔
  • 第二种命令格式采用通配符将具有类似文件名或类型等的文件(目录)同时移动到目标目录下

注意:目标目录下如果存在相同的文件名或目录名,容易误操作将同名文件或目录覆盖。

创建测试用的文件和目录

[root@CentOS7-1 mv]# touch 1.txt 2.txt 3.txt
[root@CentOS7-1 mv]# mkdir 1 2 3 
[root@CentOS7-1 mv]# ll
total 0
drwxr-xr-x 2 root root 6 Jan  8 09:20 1
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
drwxr-xr-x 2 root root 6 Jan  8 09:20 2
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
drwxr-xr-x 2 root root 6 Jan  8 09:20 3
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
Nach dem Login kopieren

移动文件

[root@CentOS7-1 mv]# mv -v 1.txt 2.txt 3.txt /root/mv1/
‘1.txt’ -> ‘/root/mv1/1.txt’
‘2.txt’ -> ‘/root/mv1/2.txt’
‘3.txt’ -> ‘/root/mv1/3.txt’
[root@CentOS7-1 mv]# ll /root/mv1/
total 0
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

目录的移动其实也是一样操作,也非常的简单。如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -n 选项

[root@CentOS7-1 mv]# ll
total 0
drwxr-xr-x 2 root root 6 Jan  8 09:20 1
drwxr-xr-x 2 root root 6 Jan  8 09:20 2
drwxr-xr-x 2 root root 6 Jan  8 09:20 3
-rw-r--r-- 1 root root 0 Jan  8 09:24 test.txt
[root@CentOS7-1 mv]# ll /root/mv1/
total 0
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
-rw-r--r-- 1 root root 0 Jan  8 09:25 test.txt
[root@CentOS7-1 mv]# mv -nv test.txt /root/mv1/
[root@CentOS7-1 mv]# ll /root/mv1/
total 0
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
-rw-r--r-- 1 root root 0 Jan  8 09:25 test.txt
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法
交互式覆盖文件

这个操作只需要添加一个参数(-i)即可

[root@CentOS7-1 mv]# mv test.txt -v -i /root/mv1/
mv: overwrite ‘/root/mv1/test.txt’? y
‘test.txt’ -> ‘/root/mv1/test.txt’
[root@CentOS7-1 mv]# ll /root/mv1/
total 0
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
-rw-r--r-- 1 root root 0 Jan  8 09:24 test.txt
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法
仅当源文件(目录)较新时才覆盖
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

从上图中可以看出,mv 目录下的 test.txt 文件较新,如果我们执行反向操作,并且带上-u参数,来测试旧文件是否会覆盖掉新文件:

[root@CentOS7-1 mv]# mv -v -u /root/mv1/test.txt ./
[root@CentOS7-1 mv]# ll
total 0
drwxr-xr-x 2 root root 6 Jan  8 09:20 1
drwxr-xr-x 2 root root 6 Jan  8 09:20 2
drwxr-xr-x 2 root root 6 Jan  8 09:20 3
-rw-r--r-- 1 root root 0 Jan  8 09:36 test.txt
Nach dem Login kopieren

结果表明并没有覆盖掉新文件,接下来,我们测试仅当源文件(目录)较新时才覆盖这个功能。

[root@CentOS7-1 mv]# mv -v -u ./test.txt /root/mv1/
mv: overwrite ‘/root/mv1/test.txt’? y
‘./test.txt’ -> ‘/root/mv1/test.txt’
[root@CentOS7-1 mv]# ll /root/mv1/
total 0
-rw-r--r-- 1 root root 0 Jan  8 09:19 1.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 2.txt
-rw-r--r-- 1 root root 0 Jan  8 09:19 3.txt
-rw-r--r-- 1 root root 0 Jan  8 09:36 test.txt
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

从上图结果中可以看出覆盖成功,这种操作可以用在大量文件移动时,也可以用在更新文件或目录时。

覆盖文件前创建备份
[root@CentOS7-1 mv]# cat test1.txt 
1
[root@CentOS7-1 mv]# cat test2.txt 
2
Nach dem Login kopieren

如果test2.txt存在,原来的文件会被备份

[root@CentOS7-1 mv]# mv -v -b test1.txt test2.txt
mv: overwrite ‘test2.txt’? y
‘test1.txt’ -> ‘test2.txt’ (backup: ‘test2.txt~’)
[root@CentOS7-1 mv]# ll
total 12
-rw-r--r-- 1 root root 2 Jan  8 09:49 test2.txt
-rw-r--r-- 1 root root 2 Jan  8 09:49 test2.txt~
-rw-r--r-- 1 root root 2 Jan  8 09:49 test3.txt
[root@CentOS7-1 mv]# cat test2.txt
1
[root@CentOS7-1 mv]# cat test2.txt~
2
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

在备份的过程中,我们还可以通过参数--suffix=xxx来自定义文件的后缀名:

[root@CentOS7-1 mv]# cat test2.txt
1
[root@CentOS7-1 mv]# cat test3.txt 
3
[root@CentOS7-1 mv]# mv -v -b --suffix=.bak test2.txt test3.txt
mv: overwrite ‘test3.txt’? y
‘test2.txt’ -> ‘test3.txt’ (backup: ‘test3.txt.bak’)
[root@CentOS7-1 mv]# cat test3.txt
1
[root@CentOS7-1 mv]# cat test3.txt.bak 
3
Nach dem Login kopieren
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

Das obige ist der detaillierte Inhalt vonLesen Sie diesen Artikel! Ich weiß nur, wie man den Linux-Befehl mv wirklich verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!