Linuxでのmvコマンドの高度な使用法

Linuxでmvも非常に頻繁に使用されるコマンドですが、基本的な使用法の他に、どのような高度な使用法を知っていますか?

1.基本的な使い方

  1. 1つまたは複数のファイルを移動します。
  2. 1つまたは複数のディレクトリを移動します。
  3. ファイル/ディレクトリの名前を変更します。

これらは非常に基本的な使用方法であるため、詳細に進む必要はありません。以下に、より高度な使用法をいくつか示します。

2.運用情報を印刷する

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-- 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/
‘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-- 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 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/
‘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

上書きする前に、ターゲットファイルがチルダ〜のファイルとしてバックアップされることがわかります。同時に、注意深く読むと、上書きされたファイルのタイムスタンプがバックアップファイルのタイムスタンプと異なることに気付くでしょう。

上記は、mvコマンドのより高度な使用法の一部ですが、柔軟に使用すると、作業効率が向上し、同僚の前でより強力になります。

最後に、最近、多くの友人からLinuxラーニングロードマップの提供を求められたため、私の経験に基づいて、1か月間余暇を過ごし、電子書籍を作成しました。面接であろうと自己改善であろうと、私はそれがあなたを助けると信じています!ディレクトリは次のとおりです。

みんなに無料でプレゼントして、いいね!

電子ブック| Linux開発ラーニングロードマップ

この電子書籍をより完璧にするために、何人かの友人が私に加わってくれることを願っています。

利得?古いアイアンに3ストライクのコンボを付けて、より多くの人がこの記事を読めるようにしてほしい

推奨読書:

おすすめ

転載: blog.csdn.net/yychuyu/article/details/108089217
おすすめ