📘
なぜmvコマンドでファイル名やディレクトリ名を変えられるのかを考察します
記事を書くきっかけ
Linuxについて学んでいるときに、なぜmv(moveの略)コマンドでファイル名やディレクトリ名を変更できるのかが気になったので、改めてmvコマンドについて調べたことを記事にまとめました。
mvコマンドの使い方
mv --helpで使い方を確認する。
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
ファイルをディレクトリに移動する
例として、foo.txtというファイルをdirというディレクトリに移動する場合
mv foo.txt dir
複数のファイルやディレクトリをまとめてひとつのディレクトリに移動する
例として、foo.txt, bar.txt, baz.txtというファイルをまとめてdirというディレクトリに移動する場合
mv foo.txt bar.txt baz.txt dir/.
ファイル名やディレクトリ名を変更する
例として、foo.txtというファイルをbar.txtというファイル名に変更する場合
mv foo.txt bar.txt
なんでmoveという名前のコマンドでファイル名やディレクトリ名を変更できるのかで戸惑いました。
なぜmvコマンドでファイル名やディレクトリ名を変更できるかの考察
私の結論は、/や/homeなどといったパスをmoveしているからです。
Linuxのファイルシステムでは、実際のデータとファイル名やディレクトリ名を分けて管理しています。ファイルやディレクトリといった実際のデータはi-node番号という識別番号を用いて管理されています。これはひとつのファイルシステム内ではユニークな値です。ファイル名やディレクトリ名はi-node番号に別で与えられたパスとなっています。ファイル移動というのは、i-node番号はそのままでパスを移動するという動作です。このことからmvコマンドはファイル名を変更できるようになっているのだと考えました。
Discussion