0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux】mvに-rがいらない理由

Last updated at Posted at 2024-10-04

はじめに

現在Ubuntuを使用してLinuxを勉強していますが、ふとmv-rがないのはなぜだろうと思い記事にすることにしました。

-rとは

というのも、rmcpコマンドでディレクトリの操作を行うときに-rを付けないとエラーが出ますが、mvの場合だと不要なのは不思議ですよね。
これについて、いろいろ調べてみたところ、-rのrはrecursive(再帰的な)という英単語の頭文字らしいです。

再帰的とは

ディレクトリの中にはディレクトリやファイルがあり、そのディレクトリの中にも...と何層ものファイルやディレクトリが存在します。
上記のように、似たもの(ファイルやディレクトリ)が階層になって存在する構造を再帰的構造といいます。
例えば~/dir1/dir2/dir3/file(dirはディレクトリ、fileはファイル)のようなファイル構造があったとします。

rm -r dir1

このコマンドによって削除されるのはdir1だけでなく、dir2やdir3、fileも同様に削除されます。

このようにディレクトリ全体を削除する場合はその中にあるすべてのファイルやサブディレクトリを削除する必要があります。
これは再帰的な操作(ディレクトリ内をすべて辿って操作を行うこと)になるため、-r(recursive)が必要になります。

cpにおいても同様で、ディレクトリの場合はその中身をすべてコピーする必要があります。
ディレクトリの中にディレクトリがあったりファイルが複数あったりする場合、それらを再帰的に辿ってコピーするために-rが必要です。

ではmvの場合はどうでしょうか。
mvはファイルやディレクトリを移動または名前変更するコマンドです。mvはファイルもディレクトリも区別せず、そのまま移動するか名前を変更します。

移動の際は、ディレクトリそのものの構造が変わらないため、再帰的に中身を辿る必要はありません。ディレクトリごと、そのまま移動するだけなので、-rは不要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?