この記事を読んでください! Linuxのmvコマンドの使い方だけは知っています

WBOY
リリース: 2024-02-12 12:09:14
転載
1093 人が閲覧しました

誰もが知っているように、Linux システムではすべてがファイルです。

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

そこで、Linuxシステムでは特にファイルの操作・管理が重要となりますが、今回はファイル管理コマンドmvを紹介します。

この記事では、mv コマンドの具体的な使い方と実際に注意すべき点を中心に解説していますので、理論と例を通して一緒に mv コマンドを学び、学んでいきましょう。

MV紹介

mv コマンドは move の略で、Linux システムでよく使用されるコマンドの 1 つで、ファイルやディレクトリの移動や名前変更によく使用されます。または、ファイルをあるディレクトリから別のディレクトリに移動します。ファイルを既存のターゲット ファイルに移動すると、ターゲット ファイルの内容はファイルの内容によって上書きされます。

ソースがファイルでターゲットがディレクトリの場合、mv はファイルの場所を移動します。ソースがディレクトリの場合、ターゲットはディレクトリ (ファイルではなく) のみにすることができ、mv はディレクトリの名前を変更します。

mv コマンドがファイルを移動すると、次の 4 つの異なる結果が表示されます:

  • ターゲットが指定された特定のパスである場合、ソース ファイルはこのディレクトリに移動され、ファイル名は変更されません。
  • ターゲットがディレクトリでない場合は、ソースファイル名(1 つだけ)がターゲットファイル名となり、同名のファイルが存在する場合は、既存の同名ファイルが上書きされます。
  • ソース ファイルとターゲット ファイルが同じディレクトリにある場合、mv の機能はファイル名を変更することです。
  • ターゲットがディレクトリの場合、複数のソース ファイルまたはディレクトリが存在する可能性があり、すべてのソース ファイルがターゲット ディレクトリに移動されます。また、すべてのファイルは以前のファイル名を保持します。

文法形式

リーリー

オプションの説明

リーリー

アプリケーション例

ファイル (ディレクトリ) の名前を変更する
#コマンド形式:

mv ソース ファイル ターゲット ファイル または mv ソース ディレクトリ ターゲット ディレクトリ

: このコマンドを使用するときは、ソース ファイル (ディレクトリ) とターゲット ファイル (ディレクトリ) が同じディレクトリにあり、ターゲット ファイル (ディレクトリ) が存在しないことを確認する必要があります。 . 、それ以外の場合、このコマンドを使用した場合の効果は、名前の変更からファイル (ディレクトリ) の移動に変わります。 まず、テストに必要なファイルとディレクトリを作成します リーリー

名前変更操作を実行する

リーリー

コマンド実行処理が必要な場合は、パラメータ

-v

を追加できます。 リーリー

単一または複数のファイル (ディレクトリ) を同時に移動する看了这篇文章!我才知道 Linux mv 命令的真正使用方法
コマンド形式: mv ソースファイル (ディレクトリ) 1 ソースファイル (ディレクトリ) 2 ターゲットディレクトリまたは mv *ファイル (ディレクトリ) ターゲットディレクトリ

複数のファイル (ディレクトリ) を同時に移動するには 2 つの方法があります:

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

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

创建测试用的文件和目录

[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
ログイン後にコピー

移动文件

[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
ログイン後にコピー
看了这篇文章!我才知道 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
ログイン後にコピー
看了这篇文章!我才知道 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
ログイン後にコピー
看了这篇文章!我才知道 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
ログイン後にコピー

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

[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
ログイン後にコピー
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

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

覆盖文件前创建备份
[root@CentOS7-1 mv]# cat test1.txt 
1
[root@CentOS7-1 mv]# cat test2.txt 
2
ログイン後にコピー

如果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
ログイン後にコピー
看了这篇文章!我才知道 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
ログイン後にコピー
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

以上がこの記事を読んでください! Linuxのmvコマンドの使い方だけは知っていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lxlinux.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート