GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxmvコマンドの説明(8例)

コピー用のcpや削除用のrmと同様に、Linuxにはファイルの移動と名前変更のための組み込みコマンドも用意されています。 mvと呼ばれます 。この記事では、わかりやすい例を使用して、このコマンドラインツールの基本について説明します。このチュートリアルで使用されているすべての例は、Ubuntu20.04LTSでテストされていることに注意してください。

Linuxmvコマンド

すでに述べたように、Linuxのmvコマンドは、ファイルの移動または名前の変更に使用されます。コマンドの構文は次のとおりです。

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

そして、manページには次のように書かれています:

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

次のQ&Aスタイルの例は、このツールがどのように機能するかについてのより良いアイデアを提供します。

Q1。 Linuxでmvコマンドを使用するにはどうすればよいですか?

ファイルの名前を変更するだけの場合は、次の方法でmvコマンドを使用できます。

mv [filename] [new_filename]

例:

mv names.txt fullnames.txt

同様に、ファイルを新しい場所に移動する必要がある場合は、次のようにmvコマンドを使用します。

mv[ファイル名][dest-dir]

例:

mv fullnames.txt /home/himanshu/Downloads

Q2。上書きする前にmvプロンプトを確認するにはどうすればよいですか?

デフォルトでは、操作に既存のファイルの上書きが含まれる場合、mvコマンドはプロンプトを表示しません。たとえば、次のスクリーンショットは、既存のfull_names.txtが警告や通知なしにmvによって上書きされたことを示しています。

ただし、必要に応じて、 -i を使用して、mvにプロンプ​​トを表示させることができます。 コマンドラインオプション。

mv -i [file_name] [new_file_name]

したがって、上記のスクリーンショットは、 -iであることを明確に示しています。 既存のファイルを上書きする前に、mvがユーザーの許可を求めることになります。上書きする前にmvにプロンプ​​トを表示させたくないことを明示的に指定する場合は、 -fを使用することに注意してください。 コマンドラインオプション。

Q3。 mvが既存のファイルを上書きしないようにするにはどうすればよいですか?

このためには、 -nを使用する必要があります コマンドラインオプション。

mv -n [filename] [new_filename]

次のスクリーンショットは、「full_names.txt」という名前のファイルがすでに存在し、コマンドに-nオプションが含まれているため、mv操作が成功しなかったことを示しています。

注:

If you specify more than one of -i, -f, -n, only the final one takes effect.

Q4。 mvでソース引数から末尾のスラッシュ(存在する場合)を削除するにはどうすればよいですか?

ソース引数から末尾のスラッシュを削除するには、-strip-trailing-slashesを使用します 以下に示すコマンドラインオプション。

mv --strip-trailing-slashes [source] [dest]

公式ドキュメントでこのオプションの有用性を説明する方法は次のとおりです。

This is useful when a source argument may have a trailing slash and specify a symbolic link to a directory. This scenario is in fact rather common because some shells can automatically append a trailing slash when performing file name completion on such symbolic links. Without this option, mv, for example, (via the system’s rename function) must interpret a trailing slash as a request to dereference the symbolic link and so must rename the indirectly referenced directory and not the symbolic link. Although it may seem surprising that such behavior be the default, it is required by POSIX and is consistent with other parts of that standard.

Q5。 mvに宛先を通常のファイルとして処理させる方法は?

宛先エンティティが(ディレクトリではなく)通常のファイルとして扱われるようにするには、 -Tを使用します。 コマンドラインオプション。

mv -T [source] [dest]

このコマンドラインオプションが存在する理由は次のとおりです。

This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‘mv /tmp/source /tmp/dest’ succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to/tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that/tmp/source was renamed to /tmp/dest.
In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.

Q6。宛先ファイルよりも新しい場合にのみmv移動ファイルを作成するにはどうすればよいですか?

システムのDownloadsディレクトリにfullnames.txtという名前のファイルがあり、ホームディレクトリに同じ名前のファイルがあるとします。ここで、〜/ Downloads / fullnames.txtを〜/ fullnames.txtで更新しますが、後者が新しい場合に限ります。次に、この場合、 -uを使用する必要があります コマンドラインオプション。

mv -u ~/fullnames.txt ~/Downloads/fullnames.txt

このオプションは、シェルスクリプト内からそのような決定を行う必要がある場合に特に役立ちます。

Q7。 mvに、実行しているすべての詳細をどのように出力させるのですか?

mvに、それが何をしているのかを正確に説明する情報を出力させたい場合は、 -vを使用します。 コマンドラインオプション。

mv -v [filename] [new_filename]

たとえば、次のスクリーンショットは、mvが正確に何をしたかについての役立つ詳細を示しています。

Q8。 mvに既存の宛先ファイルのバックアップを作成させるにはどうすればよいですか?

これは、 -bを使用して実行できます コマンドラインオプション。この方法で作成されたバックアップファイルは、宛先ファイルと同じ名前になりますが、チルダ(〜)が追加されます。次に例を示します:

結論

ご想像のとおり、mvは、提供する機能にとってcpやrmと同じくらい重要です。ファイルの名前変更/移動も、結局のところ基本的な操作の1つです。このツールが提供するコマンドラインオプションの大部分について説明しました。したがって、それらを練習して、コマンドの使用を開始できます。 mvの詳細については、manページにアクセスしてください。


Linux
  1. 初心者向けのLinux貼り付けコマンドの説明(5例)

  2. 初心者向けのLinuxwcコマンドの説明(6例)

  3. 初心者向けのLinuxexitコマンドの説明(例付き)

  1. 初心者向けのLinuxdirコマンド(10例)

  2. 初心者向けのLinuxunexpandコマンドの説明(例付き)

  3. 初心者向けのLinuxobjdumpコマンドの説明(7例)

  1. 初心者向けのLinuxCsplitコマンドの説明(6例)

  2. 初心者向けのLinuxdirnameコマンドの説明(4例)

  3. 初心者向けのLinuxフリーコマンドの説明(6例)