この記事では、開発環境でのLinuxのファイル(ディレクトリ)を操作するに当たり、(ほぼ)必ず使用するであろう2つのコマンドcpとmvについてまとめます。
cp コマンドとは
語源はcopy
語源そのまんまで、ファイルをコピーするときに使用するコマンドです。
cp (オプション) コピー元 コピー先 のように指定します。以下のとおりです。
cp test.txt test2.txt
#移動先ディレクトリを指定することも出来ます
cp test.txt dir1/test2.txt
#オプションは以下のように指定します。この場合同名ファイルなのでコピーは実行されません
cp -n test.txt test.txt
#フォルダの中身ごとコピーする際は-rオプションを使用します
#dirを中身ごとdir2の中にコピー
cp -r dir dir2
#-aオプションを使用すると属性を保持したままコピーできます
cp -a test.txt test3.txt
#-pオプションを使用するとパーミッション、作成者、タイムスタンプをそのままコピーできます。
cp -p test.txt test3.txt【2026-08-15 訂正】 公開当初、上のコード例はコマンド名をcopyと書いていました。Linuxにcopyというコマンドは無く、そのままコピペするとcommand not foundになります(copyはWindowsのコマンドプロンプト側の名前です)。地の文では最初から「cpコマンド」と書いていたので単なる打ち間違いと判断し、実行できないコードを残す意味が無いのでコード例のほうを直しました。
-a、-pオプションは自分の権限範囲を超えるコピーはできません。
他の主要なオプションは以下のとおりです。
| オプション | 説明 |
|---|---|
| -i | コピーによって上書きされるファイルがある場合、確認メッセージを表示します。 |
| -v | コピーの実行内容を表示します。 |
| -n | コピー先に既に同名のファイルが存在する場合、処理を中断します。 |
| -f | コピー先に同名のファイルが存在していても、強制的にコピー(上書き)を実行します。 |
| -b | コピー(上書き)時に、バックアップファイルが作成されます。 |
mv コマンドとは
語源はmove
同じく語源そのままでファイルやディレクトリを移動する際に使用するコマンドです。
cpコマンドと同様に mv (オプション) 移動元 移動先 のように指定します。
#ファイル名を移動先に指定するとリネームになります
mv test.txt test2.txt
#ディレクトリ名を移動先に指定すると移動します
mv test.txt dir2/.
#複数のファイルを移動することも可能です
mv test.txt test2.txt test3.txt dir3/.ディレクトリ指定の後ろには/.をつけたほうがいいです。つけないと該当ディレクトリがない場合に、指定した名前のファイルが出来てしまいます。
例)mv test.test dir
dirというディレクトリがなかった場合、dirというファイルにリネームされる
主要なオプションは以下のとおりです。
| オプション | 説明 |
|---|---|
| -f | 移動先に同名のファイルがある場合、強制的に移動(上書き)されます。 |
| -i | 移動先に同名のファイルがある場合、確認メッセージが表示されます。 |
| -b | 移動により上書き(削除)されるファイルのバックアップを作成します。 |
| -n | 移動先に同名のディレクトリ(またはファイル)がある場合は、処理を実行しません。 |
| -v | 移動処理を行う際の詳細情報を表示します。 |
まとめ
仮想環境として今回もEnvaderを使用しました。
cp、mv両コマンドともにコマンド自体はシンプルなものの用途やオプションが多く覚えられる気がしないのでとにかく手を動かして記憶に定着するようしようと思います。
参考にしたサイト
各種コマンド内容について参考にさせていただきました。





