Linux における mv コマンドの高度な使用例

Linux における mv コマンドの高度な使用例

序文

mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの移動 (名前の変更)) するために使用できます。これは Linux システムでよく使用されるコマンドで、ファイルやディレクトリのバックアップによく使用されます。

コマンド形式:

mv [オプション] ソースファイルまたはディレクトリ ターゲットファイルまたはディレクトリ

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

1. 基本的な使い方

  • 1 つ以上のファイルを移動します。
  • 1 つ以上のディレクトリを移動します。
  • ファイル/ディレクトリの名前を変更します。

これらは非常に基本的な使用法であり、詳しく説明する必要はありません。より高度な使用方法をいくつか紹介します。

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: '/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 アルビン アルビン 0 2月8日 17:26 file2.txt
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:35 file3.txt
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:26 des/file1.txt
-rw-rw-r-- 1 アルビン アルビン 0 2月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 ファイル2.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 アルビン アルビン 0 2月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 ファイル2.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' (バックアップ: '/home/alvin/test/mv_test/des/file1.txt~')
'file2.txt' -> '/home/alvin/test/mv_test/des/file2.txt' (バックアップ: '/home/alvin/test/mv_test/des/file2.txt~')
[alvin@VM_0_16_centos mv_test]$ ll des/
合計 0
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:41 file1.txt
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:26 file1.txt~
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:26 file2.txt
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:27 file2.txt~
-rw-rw-r-- 1 アルビン アルビン 0 2月8日 17:35 file3.txt

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

上記は、mv コマンドのより高度な使い方です。これらを柔軟に使用すれば、作業効率が向上し、同僚の前でより印象が良くなります。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • 高度な Linux システム コマンド (推奨)
  • Linuxで編集モードを終了するコマンドの詳細な説明
  • Linux で binlog ファイルの作成時間を表示するコマンド
  • 仕事でよく使うLinuxコマンドまとめ
  • Linux の mkdir コマンドの詳細な説明
  • 使用したコマンドを表示するLinuxコマンドメソッドの概要

<<:  JavaScriptはキャンバスを使用して座標と線を描画します

>>:  JavaScript コンソールのその他の機能

推薦する

Docker に Zookeeper を素早くインストールする方法の詳細なチュートリアル

Docker で Zookeeper を素早くインストール会社を変わってから長らくZookeeper...

子ども向けウェブサイトの視覚構造レイアウト設計手法の分析

1. 温かくて優しい関連アドレス: http://www.web-designers.cn/post...

MySQL インデックス カバレッジの例の分析

この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...

Vue 3 での watch と watchEffect の新しい使い方

目次1. 時計の新しい使い方1.1. ウォッチの使用構文1.2. 複数の属性値を監視する1.3. 参...

Windows での MySQL の詳細なインストール手順と基本的な使用方法

目次1. MySQLをダウンロードする2. MySQLをインストールする3. MySQL の基本的な...

base target="" はフレームを開くためのベースリンクのターゲットを指定します

<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...

Linux システムでの virtuoso データベースの詳細なインストールと使用

最近、リンク データについていくつか調査していて、rdf データベースを使用する必要があったため、v...

マークアップ言語 - HTML を学んだ後に何を学ぶべきか?

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

USE DB 輻輳に対する MySQL ソリューションの詳細な説明

障害に遭遇すると、障害の根本的な原因を考えるのではなく、障害を解決する方法を考えることがよくあります...

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

Linux curl フォームのログインまたは送信と Cookie の使用に関する詳細な説明

序文この記事では主に、curl を介してフォーム送信ログインを実装する方法について説明します。単一の...

HTML テーブル_Powernode Java アカデミー

HTMLで表を描くには、表タグを使用します。 trは行を意味しますtdは列を示すth はテーブ...

MySQL における Decimal 型と Float Double 型の違い (詳細説明)

MySQL には、10 進数などの標準データ型だけでなく、float や double などの非標...

js のプロトタイプ、プロトタイプ オブジェクト、プロトタイプ チェーンの包括的な分析

目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...

円形/扇形メニューを2分で実装する方法を教えます(基本バージョン)

序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...