EnvaderでLinuxコマンドを学ぶ③(mv/cp編)


この記事の内容

はじめまして、a-min3150です。エンジニアへの転職を目標に日々、学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。

Linuxコマンドとは

LinuxOSで使うことのできるコマンドで主にサーバーのシステムを操作するのにCUI(いわゆる黒い画面)での操作が必要となるため、サーバー管理やインフラ構築をするエンジニアは知っておかなければならないコマンドとなります。

今回の学習アウトプットは

Linuxコマンドの基礎コマンドの3回目で、(mv/cp)の2つのコマンドについてです。
これらを学ぶことにより、「ディレクトリ・ファイル」 の移動と複製ができるようになります。

1回目はこちら
2回目はこちら

mvコマンドとは

mvとは、(MoVe)の略でコマンドの機能として2つあり、1つはディレクトリやファイルを別のディレクトリへ移動する際に使用するコマンドです。
もう1つは名前を変更したいディレクトリ(またはファイル)を先に、変更によって表示したいディレクトリ名(またはファイル名)を後に指定することで、リネーム処理となります。

基本的な使い方(mv-移動)

mv [オプション] 移動させたいディレクトリ(またはファイル)名 移動先のディレクトリ名
主なオプション

オプション 説明
-f 移動先に同名のファイルがある場合、強制的に移動(上書き)されます。
-i 移動先に同名のファイルがある場合、確認メッセージが表示されます。
-b 移動により上書き(削除)されるファイルのバックアップを作成します。
-n 移動先に同名のディレクトリ(またはファイル)がある場合は、処理を実行しません。
-v 移動処理を行う際の詳細情報を表示します。

移動先に同名ファイルがある場合は“上書き”となるので注意が必要です。-iオプションを使用し確認メッセージを表示するか、-nオプションを使用し上書き処理が実行されないようにしましょう。

mv hoge.txt hogehoge/.  #hoge.txtをhogehogeディレクトリに移動

そしてファイルをディレクトリに移動する場合には、移動先のディレクトリ名に/.をつけることで、より安全に作業を行えます。
この/.には「ディレクトリ直下の」という意味があります。もし/.を付けずに上記のコマンドを指示し、且つhogehogeディレクトリが存在していなかった場合、hoge.txtファイルはhogehogeというファイルにリネームされるという挙動をとります。

基本的な使い方(mv-名前変更)

名前を変更したいディレクトリ(またはファイル)を先に、変更によって表示したいディレクトリ名(またはファイル名)を後に指定することで、リネーム処理となります。

mv ファイル1 ファイル2   #ファイル1の名前をファイル2に変更

cpコマンドとは

cpとは、(CoPy)の略で、既存のファイルを複製(コピー)する際に使用するコマンドです。

基本的な使い方

cp [オプション] コピー元ファイル コピー先ファイル

主なオプション

オプション 説明
-i コピーによって上書きされるファイルがある場合、確認メッセージを表示します。
-v コピーの実行内容を表示します。
-n コピー先に既に同名のファイルが存在する場合、処理を中断します。
-f コピー先に同名のファイルが存在していても、強制的にコピー(上書き)を実行します。
-b コピー(上書き)時に、バックアップファイルが作成されます。

コピー先にディレクトリを指定する場合は、コピー元ファイルの次にコピー先ディレクトリを指定します。

cp [オプション] コピー元ファイル コピー先ディレクトリ
また-rオプションを使用した状態でコピー元にディレクトリを指定すると、その中にある子ディレクトリやファイルを含めてコピーすることが出来ます。

cp [オプション] コピー元ディレクトリ コピー先ディレクトリ

まとめ

今回はLinuxの基本コマンド(mv/cp)の2つのコマンドについて解説しました。
mvは「ディレクトリまたはファイルを移動させる機能」と「名前変更させる機能」
の2つの意味合いがあることを覚えましょう。

引用サイト/資料

Envader(エンベーダー):https://envader.plus/
Envaderコース一覧:https://envader.plus/courses
基本的なコマンドの練習(mv/cp編):https://envader.plus/course/1/scenario/1003
Linux基礎コース:https://envader.plus/course/1
Linux標準教科書:https://lpi.or.jp/news/press/page/20180327_01/