前回で「黒い画面」用のソフトをインストールして使えるようになったので次は「簡単な自動化」が出来るようにファイル操作の基本を覚えてしまいましょう。
## ファイルの作成
```sh
$ touch foo
```
touchコマンドは空のファイルを作成します。本来既にあるファイルに触って(touchして)最終更新日を更新するだけのコマンドですが、空ファイルを作るのにも使われます。
## ディレクトリの作成
```sh
$ mkdir bar
```
mkdirはMaKe DIRectoryの略でディレクトリを作成します。-pオプションで深い階層を持つディレクトリも一気に作れるのが便利です。
```sh
$ mkdir -p aaa/bbb/ccc
```
![Image from Gyazo](https://i.gyazo.com/ac09ddcd2908d0b475467d9ce0ac9f47.png)
前回インストールしたtreeコマンドはこうやって使うと深い階層を持つディレクトリの様子がわかりやすいですね。
## ファイルのコピー
```sh
$ cp foo /tmp
```
cpはCoPyの略で、そのまんまですがファイルをコピーするコマンドです。上記ではfooファイルを/tmpディレクトリにコピーしています。
```sh
$ cp foo bar
```
ファイル名を指定すればその名前でコピーされます。fooの複製barが出来ました。
```sh
$ cp -r aaa /tmp
```
-rオプションを付ければディレクトリを丸ごとコピーできます。
![Image from Gyazo](https://i.gyazo.com/b7db0f8c70989ec807e176d7deffc100.png)
-rを付けないと「fooはディレクトリだからコピーできないよ」とエラーが出ています。親切ですね。
## ファイルの移動
```sh
$ mv foo bar
```
mvはMoVeの略でそのまんまですが、ファイルを移動するコマンドです。cpと違って元のファイルは無くなってしまうので注意です。また、cpと違ってオプションを付けなくてもディレクトリの移動が可能です。
## ファイルの削除
```sh
$ rm foo
```
rmはReMoveの略でファイルを削除するコマンドです。略し過ぎですね。
```sh
$ mkdir -p aaa/bbb/ccc
$ rm -r aaa
```
-rオプションを付けるとディレクトリを丸ごと削除してくれます。危ないですね。sudoと組み合わせればどんな物も削除出来てしまうので注意してください。下記は絶対に実行してはいけません。
```sh
$ sudo rm -rf / # 絶対に実行してはいけない
```
## ファイルの表示
```sh
$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
```
catはconCATenateの略でファイルの中身を表示するコマンドです。concatenateは連結させるという意味で本来は引数に渡した二つのファイルを繋げて表示するコマンドですが、一つしかファイルを渡さなければ単に中身を表示するのでその用途の方で主に使われている悲しいコマンドです。lsやrmやcatのような基本的なコマンドは問答無用で覚えさせられることが多いので「cat?何で猫がファイルを表示するんだろう?」と思う人は多い(ハズ)です。
<div class="tips">
<h3>ファイルの編集は?</h3>
<p>
ファイルの作成、コピー、移動、削除と来たら編集を何故やらないの?と思うかもしれません。「黒い画面」にも当然テキストエディターソフトがあります。代表的なものはviとemacsです。両方とも使い方に癖があるため「黒い画面って怖い」と思われる原因になっている気がするのでこのシリーズでは説明しません。
</div>
さあこれでファイル操作がひと通り出来るようになりました。普段エクスプローラーでやっていることもなるべく「黒い画面」でやるようにしてみてください。
[「本当は怖くない黒い画面」入門(Windows \+ WSL2編) Part.8](https://bootcamp.fjord.jp/articles/27)へ続く。
ブログ