lsコマンドを作るんだ。
今習っているFBCのカリキュラムの中で 「lsコマンドを作る」というものがあり、
本日無事に全ての項目のOKをもらったので
サクッとまとめたものをブログに記しておこうと思う。
1.lsコマンドって??
lsコマンドは、ファイルやディレクトリの情報を表示するもの。
「list segments」の略。
ls
と打つと、現在いるディレクトリのファイルやフォルダを一覧表示してくれる、これが基本の動作。
そこにオプションが多く存在する。
(ただ、FBCのカリキュラムでは-a
-r
-l
の3つのオプションのみ。)
2.オプションについて
- オプション
-a
⇨よく使うオプションの一つ。
⇨ファイル名の先頭にピリオド(.
)があるファイルも表示してくれる。
- オプション
-l
⇨こちらもよく使うオプションの一つ。
⇨l
はlongなフォーマットの意味。各ファイルのロングフォーマットを表示してくれる。
⇨上のオプション-a
と一緒に使ったりする。( -la
とか)
- オプション
-r
⇨逆の順番で表示してくれる。
3.実装したい内容
- オプションなし
⇨横に最大3列を維持して表示。 ※下記参照
(ファイルの並び順は列ごとに辞書式順序にソートされる)
⇨カレントディレクトリの内容を表示。
- オプション
-a
⇨ファイル名の先頭に.
があるファイルも含めて表示。
- オプション
-l
⇨1行目にディレクトリ内の各ファイルのブロック数の合計を表示(total 数値)
⇨2行目以降に各ファイルのロングフォーマットを表示。
- オプション
-r
⇨逆順での表示。
※ ファイルの並び順。
# OKパターン 0 4 8 1 5 9 2 6 3 7 # NGパターン 0 1 2 3 4 5 6 7 8 9
また、以下の機能は実装の対象外。
4.ロングフォーマットについて
オプションの-l
を指定した時に
total
の下(2行目以降)に
表示される(例)のような形式をロングフォーマットという。
(例)
drwxr-xr-x 14 name staff 448 1 24 16:10 dir
ロングフォーマットの情報(詳細)は以下の7個。
①ファイルタイプとファイルモード
(例)の中ではdrwxr-xr-x
この部分に当たる。
10桁あり、1桁目がファイルタイプで、2桁目〜がファイルモード。
(この詳細はここで書くととてつもなく長くなるので 別のタイミングでブログにまた書きたいと思う。)
②ハードリンク数
(例)の中で14
の部分。
ファイルのハードリンク数を表示 (シンボリックリンクはカウントされない)
③所有者名
(例)の中でname
の部分。
ファイルの所有者名を表示。
④グループ名
(例)の中でstaff
の部分。
ファイルの所有グループ名を表示。
⑤ファイルサイズ
(例)の中で448
の部分。
ファイルサイズをバイト単位で表示。
(ただし、ファイルがキャラクタデバイスまたはブロックデバイスの場は
ファイルサイズの代わりにデバイス番号を16進数で表示する。)
⑥タイムスタンプ
(例)の中で1 24 16:10
の部分。
ファイルの最終更新時刻を表示。
表示形式は、デフォルトだと<月> <日> <時間>
だが
最終更新時刻が6ヶ月以上前または未来の日付の場合は <月> <日> <年>
と表示する。
⑦ファイル名
(例)の中でdir
の部分。
ファイル名を表示。
もし、ファイルがシンボリックリンクの場合は、リンク先のパスも表示する。
ただのつぶやき
前回から日にち結構あいてた。 なかなか続けて書けていないのはよくないな。
まぁ、でもこれも慣れ、ということで
そういえば、これを書いてたら
あーこうだったな〜とすごく辛かった時期を思い出して
(一番最初のオプションなしもだいぶ辛かったし、オプションの-l
も辛かった)
嫌になったw
けど、それを乗り越えられたから完成できたのもある。
時間はかかったけどね。
いつか、サクサクっとコーディングできる時が来るのだろうか。。。。