Envaderを利用して、Linuxコマンド mv/cpについて学んだ。
どうも。30代後半からIT業界、エンジニアへ転職する物語の主人公、コバキチです。
Linuxコマンドの中でも基本であろう、mv/cpコマンドについて学んだので、その振り返りとまとめになります。
学習した環境
学習するに当たり利用した環境は、環境構築が不要で、オンラインでLinux環境が学べるオンライン学習サービス、Envaderを利用しました。
気になる方はリンクを貼っておきますので、参考までにどうぞ。
Envader
mvコマンド(Move)
mvコマンドでできる事
ファイル、ディレクトリの移動
ファイル、ディレクトリの名称の変更
mvコマンドでファイルを移動してみる
実行例
mv 移動させたいディレクトリ名(またはファイル名) 移動先のディレクトリ名
#ファイルを作成
envader@172-19-1-2:~$ touch hoge.txt
envader@172-19-1-2:~$ ls
hoge.txt myapp package.json
#mvコマンドでhoge.txtをmyappディレクトリへ移動する
envader@172-19-1-2:~$ mv hoge.txt myapp/
#hoge.txtが消えた
envader@172-19-1-2:~$ ls
myapp package.json
#myappディレクトリへhoge.txtが移動されている
envader@172-19-1-2:~$ cd myapp/
envader@172-19-1-2:~/myapp$ ls
hoge.txt
mvコマンドでファイル名を変更してみる
実行例
envader@172-19-1-2:~/myapp$ ls
hoge.txt
#hoge.txtをchange.txtへ変更してみる
envader@172-19-1-2:~/myapp$ mv hoge.txt change.txt
#hoge.txtからchange.txtへ変更できた
envader@172-19-1-2:~/myapp$ ls
change.txt
ここまでは単純にファイルを移動しただけですが、ファイルだけではなく、ディレクトリを丸ごと移動することもできるみたいです。
やってみましょう。
mvコマンドでディレクトリを丸ごと移動してみる
実行例
envader@172-19-1-2:~$ ls
dir1 dir2 myapp package.json
#dir1ディレクトリをdir2ディレクトリへ移動
envader@172-19-1-2:~$ mv dir1 dir2
#dir1がなくなっている
envader@172-19-1-2:~$ ls
dir2 myapp package.json
#dir2へディレクトリを移動
envader@172-19-1-2:~$ cd dir2
#dir2ディレクトリの中にdir1ディレクトリを発見
envader@172-19-1-2:~/dir2$ ls
dir1
ちゃんとdir1ディレクトリがdir2ディレクトリへ移動できているのが確認できたかと思います。
注意点
mvコマンドのオプション
以下オプション一覧です。
オプション実行例
イメージが自分でも湧かなかったので、実際にやってみました。
まずは-bオプション
バックアップの作成
#-bでバックアップ
#dir2には既にdir1が存在している
envader@172-19-1-2:~/dir2$ ls
dir1
envader@172-19-1-2:~/dir2$ cd
envader@172-19-1-2:~$ ls
dir2 myapp package.json
#ホームディレクトリにdir1を作成
envader@172-19-1-2:~$ mkdir dir1
envader@172-19-1-2:~$ ls
dir1 dir2 myapp package.json
#-bオプションを付けてdir1をdir2へ移動してみる
envader@172-19-1-2:~$ mv -b dir1 dir2
envader@172-19-1-2:~$ ls
dir2 myapp package.json
envader@172-19-1-2:~$ cd dir2
#dir1~というバックアップディレクトリが作成されている
envader@172-19-1-2:~/dir2$ ls
dir1 dir1~
dir1~というバックアップディレクトリが作成されていますね。
なるほど、こういう事か。。。
これを使えば、うっかりミスをして大切なファイルを間違えて上書きしてしまった〜なんてことはなくなりそうですね。
次は-vオプション
詳細情報の表示
envader@172-19-4-2:~$ ls
dir1 dir2 myapp package.json
#dir1をdir2ディレクトリへ移動
envader@172-19-4-2:~$ mv -v dir1 dir2
'dir1' -> 'dir2/dir1'
dir1をdir2ディレクトリへ移動しましたよ〜との詳細情報が表示されていますね。
これはちゃんと移動が成功したかどうかも分かりやすいので使ったほうがよさそうなオプションです。
cpコマンド(Copy)
cpコマンドは、既存のファイルやディレクトリを複製する際に使用するコマンドです。
使い方
cp オプション コピー元ファイル(ディレクトリ) コピー先ファイル(ディレクトリ)
なかなかシンプルな使い方になりそうです。
#test.jsファイルの作成
envader@172-19-4-2:~$ touch test.js
envader@172-19-4-2:~$ ls
dir2 dir3 myapp package.json test.js
#test.jsファイルをtest2.jsファイルとしてコピーする
envader@172-19-4-2:~$ cp test.js test2.js
#コピーが完了した。
envader@172-19-4-2:~$ ls
dir2 dir3 myapp package.json test.js test2.js
これが通常のcpコマンドの使い方ですね。
cpコマンドのオプション
続いてcpコマンドのオプションの紹介です。
大体mvコマンドと似たり寄ったりな感じですね。
まとめ
mvコマンドでは、ファイルやディレクトリの移動、名前の変更をする事ができる。
mv,copyコマンドどちらも、ファイルが上書きされてしまうのを注意しなければならない。
オプションについても、大体似ている。
最後まで読んでいただきありがとうございました。
参考にさせていただいた記事一覧
【 mv 】コマンド――ファイルやディレクトリを移動する/名前を変更する
【Linuxコマンド】mvでファイル・ディレクトリを移動する方法
ファイルやディレクトリをコピーするcpコマンドの使い方!【Linuxコマンド集】