はじめに
今回は、自分がLinuxを始めて一番最初につまづいた lsコマンド
と catコマンド
の違いについて説明したいと思います。
拙い説明ではありますが、Linuxを始めたばかりの方の勉強の助けになれればと思います。
結論
まず最初に簡単に結論を書いてしまいます。
「うーん、わからん」となった方は、さらに先で細かく説明しているのでそちらを参照してください。
lsコマンド
ファイルやディレクトリ(フォルダ)の情報を表示するコマンド。
ディレクトリを対象にすることで、そのディレクトリが持っているファイルや、ディレクトリの情報も取得できる。
catコマンド
ファイルの中身(ファイルに何が書かれているか)を見るために使われることが多い。
ディレクトリに対して使用するとエラーが発生する。
ファイル と ディレクトリ(フォルダ)の違い
lsコマンドと catコマンドの違いを理解する上で一番大切なのは「ファイル」と「ディレクトリ(フォルダ)」の違いです。
-
「ファイル」は一枚の紙のようなものであり、情報が書き込まれています。
中に何かを入れることはできません。 -
「ディレクトリ」は「ファイル」を入れるための入れ物で、直接何かを書き込むことはできません。
#ファイルとディレクトリ(フォルダ)についてのまとめ
-
ファイルは
書類
-
ディレクトリは書類等のものを入れる
入れ物
※ ちなみに「フォルダ」と「ディレクトリ」は基本的には呼び方が違うだけで、同じ意味と考えて問題ないでしょう。
ls コマンドにできること
ls コマンドができるのは①入れ物(ディレクトリ)の中身を覗くことと、②書類(ファイル)自体を見ることです。
ディレクトリに対して ls コマンドを実行
実際にコマンドを実行してみます。
[qiita@localhost ~]$ ls test
a.txt b.txt c_directory
これをWindowsのイメージにしてみると ↓ のようになります。 ![ls結果5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1631699/7e55ed1d-78ca-50d9-8c27-c0a00fc6b232.png)
「testディレクトリ」の中に入っているものをlsコマンドで覗いていることがわかると思います。
また、「testディレクトリ」の中には
- a.txt
- b.txt
- c_directory
の3つが入っていることが確認できます。
ファイルに対して ls コマンドを実行
次にファイルに対してlsコマンドを実行します。
[qiita@localhost test]$ ls a.txt
a.txt
これをWindowsのイメージにしてみると ↓ のようになります。
「a.txt(ファイル)」自体を見ていることがわかると思います。
「a.txt(ファイル)」は入れ物ではないので、中身はありません。
また、ls コマンドは何が書かれているか
まで見ることはできません。
※ ls コマンドはオプションを付けることで入れ物自体を見ることもできます。
cat コマンドにできること
catコマンドは**書類(ファイル)に何が書かれているかを見ること**ができます。
ファイルに対して cat コマンドを実行
実際にコマンドを実行してみます。
[qiita@localhost test]$ cat a.txt
Hello World!!!
Good Bye!!!
これをWindowsのイメージにしてみると ↓ のようになります
ディレクトリに対して cat コマンドを実行
入れ物(ディレクトリ)に対してcatコマンドをすることはできません。
入れ物(ディレクトリ)にはテキストファイルのように何かを書くことができない
からです。
実際にコマンドを実行してみます。
[qiita@localhost test]$ cat c_directory/
cat: c_directory/: ディレクトリです
このようにエラーが発生してしまいます。
これをWindowsのイメージにしてみると ↓ のようになります。
まとめ
lsコマンドにできること
①入れ物(ディレクトリ)の中身を覗くこと
→ls コマンドの結果は「入れ物の中身
」
②書類(ファイル)自体を見ること
→ls コマンドの結果は「書類自体
」
cat コマンドにできること
書類(ファイル)に何が書かれているかを見ること
→cat コマンドの結果は「書類に書き込まれている文章
」
※入れ物(ディレクトリ)にcatコマンドはできない
→cat コマンドの結果は「エラー
」
おわりに
最後まで読んでいただきありがとうございました。
今回のような素朴な疑問に答えることの難しさを痛感しました...。
説明するための無理やりな解釈等が入ってしまい、我ながらとても残念です。
良い説明方法等ありましたら、コメント等でご教授いただけると幸いです。
Twitter(@IT_no_mushi)もやっていますので、こちらでもコメントやフォローをお待ちしております。