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 コンソールのその他の機能

推薦する

Ubuntu ベースのディストリビューションに Microsoft TrueType フォントをインストールするチュートリアル

Linux 上の LibreOffice で Microsoft ドキュメントを開くと、フォントが少...

Dockerをクリーンアンインストールする方法の詳細な説明

まず、サーバー環境情報: アンインストールの理由:しばらくするとホストマシンのディスクが100%にな...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

nginx-naxsi ホワイトリストルールの詳細な説明

ホワイトリストルールの構文:基本ルール wl:ID [否定] [mz:[$URL:target_ur...

HTML タグに類似: strong および em、q、cite、blockquote

XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...

ROS で Turtlebot3 移動ロボットを制御するための基本的なチュートリアル

中国語チュートリアルhttps://www.ncnynl.com/category/turtlebo...

docker コマンド例外「権限が拒否されました」の解決方法

Linuxシステムでは、dockerを新しくインストールし、次のようなコマンドを入力します。dock...

vue3.0+echarts は 3 次元の縦棒グラフを実現します

序文: Vue3.0はechartsの3次元縦棒グラフを実装します結果: 実装手順: 1. echa...

Tomcat および Web アプリケーションの Docker デプロイメントの実装

1.dockerをオンラインでダウンロードする yum インストール -y epel-release...

MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...

MySQLデータの重複チェックと重複排除の実装ステートメント

テーブル user があり、フィールドは id、nick_name、password、email、p...

Vueのデータ応答性原則の詳細な説明

この記事は主に、Vue のレスポンシブ ソース コードを理解していない、または触れたことがない人向け...

スタイリッシュなウェブページデザインを作成する方法(グラフィックチュートリアル)

「壮大」という言葉は、おそらく現代のデザイナーが最も聞きたくない言葉でしょう。デザイナー:「デザイン...

nginx で複数の仮想ホストを設定する方法の例

nginx で仮想ホスト vhost を設定すると非常に便利です。 nginx設定ファイルnginx...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...