ファイルシステムとコマンドによるファイル操作について多くのことを学びました。それを使ってファイル操作の課題を行ない、自分自身の理解を確認しましょう。
あなたの手元には以下のようなディレクトリ構造のファイル群があるはずです。
これをコマンドを使って以下のような構造に組み換えてください。
具体的には以下の操作をしてください。詳しい手順は後述します。
これらの作業が終われば、report ディレクトリをZIP形式で圧縮して、提出します。繰り返しますが、Finder の操作でやるのではありませんからね。コマンドによって作業するのですよ。
以下、step by step で操作の詳細について示します。書いてある通りにやればできるでしょうが、何をやっているのか曖昧な状態で作業をしないように。その場合は「コマンドによるファイル操作」の資料を見ながら、理解を再確認してください。
dirReport フォルダに cd して、mkdir コマンドで report ディレクトリを作ります。
yasuda@Hex dirReport % pwd <<< 作業ディレクトリが正しいことを確認
/Users/yasuda/Documents/dirReport
yasuda@Hex dirReport % ls <<< 初期状態のファイル一覧を確認
sample1.txt subdir
yasuda@Hex dirReport % mkdir report <<< report ディレクトリを作成
yasuda@Hex dirReport % ls <<< 作業後に report が増えていることを確認
report sample1.txt subdir
yasuda@Hex dirReport %
この時、以下のように dirReport フォルダの内容が Finder ウィンドウで見えるようにしておけば、mkdir した途端にそれが Finder 表示に反映されるのがわかるでしょう。操作の結果を確認しながら作業することを勧めます。
作成した report ディレクトリに cd して、cal コマンドで cal2024.txt ファイルを作ります。
cal コマンドは引数(ひきすう)なしで実行するとその月のカレンダーを表示します。
yasuda@Hex dirReport % cal
3月 2024
日 月 火 水 木 金 土
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
yasuda@Hex dirReport %
cal コマンドの引数として西暦を与えると、その年のカレンダーを表示します。
yasuda@Hex dirReport % cal 2024
2024
1月 2月 3月
日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土
1 2 3 4 5 6 1 2 3 1 2
7 8 9 10 11 12 13 4 5 6 7 8 9 10 3 4 5 6 7 8 9
14 15 16 17 18 19 20 11 12 13 14 15 16 17 10 11 12 13 14 15 16
21 22 23 24 25 26 27 18 19 20 21 22 23 24 17 18 19 20 21 22 23
... (以下略)...
この表示を(画面に出すのではなく)ファイルに保存するようにします。「 cal 2024 > cal2024.txt 」とすると、cal 2024 コマンドの出力を cal2024.txt というファイルに保存します。
yasuda@Hex dirReport % cd report <<< report ディレクトリに cd
yasuda@Hex report % ls <<< 作業前にファイル一覧を確認
yasuda@Hex report % cal 2024 > cal2024.txt <<< ファイルを作成
yasuda@Hex report % ls <<< 作業後にファイルが増えていることを確認
cal2024.txt
yasuda@Hex report % cat cal2024.txt <<< ファイルの中身を確認
2024
1月 2月 3月
日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土
1 2 3 4 5 6 1 2 3 1 2
7 8 9 10 11 12 13 4 5 6 7 8 9 10 3 4 5 6 7 8 9
14 15 16 17 18 19 20 11 12 13 14 15 16 17 10 11 12 13 14 15 16
... (以下略)...
次にテキストエディットを起動して、何か適当なことを5-10行くらい書いてください。ただし、テキストエディットはファイルフォーマットとして何種類かが選べます。テキストエディットの「フォーマット」メニューの上から「フォント」「テキスト」と続いて、すぐその下に「標準テキストにする」を実行してください。
起動時、つまり初期状態は Rich Text 編集モードですから、編集テキスト編集モードに変更するのですよ。
適当なところで report フォルダの下に保存して、ls コマンドで所定の場所にファイルが保存されたことを確認してください。
yasuda@Hex report % ls <<< 作業後にファイルが保存されたことを確認
cal2024.txt message.txt
yasuda@Hex report % cat message.txt <<< ファイルの内容を確認
私の名前は中野です。
落語が好きなので寿限無の名前を書きます。
じゅげむじゅげむごこうのすりきれ
...(途中略)...
ちょうきゅうめいのちょうすけ
yasuda@Hex report %
report ディレクトリの下に mkdir コマンドで JPEGs, PNGs という二つのディレクトリを作ります。
yasuda@Hex report % ls <<< 作業前にファイル一覧を確認
cal2024.txt
yasuda@Hex report % mkdir JPEGs PNGs <<< ディレクトリを作成
yasuda@Hex report % ls <<< 作業後にディレクトリができていることを確認
JPEGs PNGs cal2024.txt
yasuda@Hex report %
mkdir コマンドは引数としてディレクトリ名を複数与えることができます。もちろん以下のように、一度に一つずつ作ることも可能です。
yasuda@Hex report % mkdir JPEGs
yasuda@Hex report % mkdir PNGs
続いて画像ファイルを、先ほど作成した JPEGs, PNGs ディレクトリに、JPEG, PNG 各画像フォーマットに合わせて移動させてください。
例えば以下の KSU.jpg ファイルを JPEGs ディレクトリ以下に移動させる場合を考えます。
移動は mv コマンドで行うのですが、現在の作業ディレクトリから見て、KSU.jpg ファイルは「一つ上の、その下にある subdir の下にある subsubdir の下にある images ディレクトリの下の KSU.jpg 」ということになります。これを相対パス指定で書くと、こうなります。
yasuda@Hex report % mv ../subdir/subsubdir/images/KSU.jpg JPEGs
しかし本当に上の記述で合っているかどうか、なかなか自信が持てないものです。こういう時は Tab キーを使ったファイル名の補完機能を使うとコマンド記入時点で確認ができます。例えば「 mv ../ 」と入力した時点で、Tab キーを押してください。画面上には以下のように「一つ上」のディレクトリ階層にあるファイル名の候補が現れます。
これで「ああ今このディレクトリ階層を覗いているんだな」とわかるでしょう。また、sub くらいまでタイプして Tab を押せば「 mv ../subdir/ 」まで補完してくれますし、そこでもう一度 Tab キーを押せば、今度は subdir の下の階層について出してくれます。
ところで mv コマンドで一つずつファイルを移していっても良いのですが、こういう時はワイルドカードが使えます。ワイルドカードとはファイル名指定の一部に「 * 」や「 ? 」を使うと、それがマッチするファイルを全て処理の対象としてくれる機能です。「 * 」は「複数の文字」、「 ? 」は「一つの文字」にマッチします。
以下に今回の images ディレクトリ以下でマッチするパターンの例を挙げておきます。
パターン | マッチするファイル |
---|---|
* | すべてのファイル |
*.* | すべてのファイル |
*.jpg | confectionaries.jpg, KSU.jpg, leaves.jpg すべての JPEG ファイル |
*.png | icon01.png〜icon6.png すべての PNG ファイル |
icon*.png | icon01.png〜icon6.png すべての PNG ファイル |
icon0?.png | icon01.png〜icon6.png すべての PNG ファイル |
??????.* | icon01.png〜icon6.png と、leaves.jpg (ドットより前が6文字) |
???????*.* | confectionaries.jpg (ドットより前が7文字以上) |
*e* | confectionaries.jpg, leaves.jpg (どこかに e が含まれるもの) |
今回の場合であれば、*.jpg, *png などとファイルの種別ごとに指定すれば、二度の mv コマンド実行で移動作業が完了しますね。
ここまで正しくできたことを、Finder の表示などで確認してください。問題なければ、report ディレクトリを ZIP 圧縮して一つのファイルにまとめ、moodle に提出してください。
操作としては、report ディレクトリ(フォルダ)を選択した状態で、Finder の「ファイル」メニューから「圧縮」を実行してください。以下のような report.zip ファイルが作成されるでしょう。
これをmoodleに提出してください。
なお、「 man zip 」としてマニュアルを見ると、冒頭に以下のように表示されます。
NAME
zip - package and compress (archive) files
つまり zip はファイルを「圧縮」するだけでなく、「パッケージ化」「アーカイブ化」するものだ、となっています。具体的には「階層的なフォルダ構造を含めて、複数のファイルを一つのファイルにまとめる」と解釈してください。もちろん、アーカイブファイル、つまり単一の zip ファイルは、あとで展開することで元の階層的なフォルダ構造ごと復元してくれることが大前提です。
普通の英単語の「archive」の意味を押さえておくとイメージがつかみやすいと思います。
辞書を引こう |
---|
コマンドによる操作(CUI - Character User Interface, CLI - Command Line Interface)では、どうしても英単語を使うことになります。エラー・メッセージ、ヘルプ・メッセージなども英語が多いです。辞書を引くなり、機械翻訳サービスを使うなりして、とにかく読みましょう。package のような「なんとなく分かってそうな単語」も「pack=複数のものを容れ物に詰める」というイメージを持てば、zip の機能を理解しやすくなるでしょう。古代のラテン語でコマンドやメッセージが出たとしたら、コンピュータに対する理解はひどく難しくなるでしょう。英語なのです。呪文でなく、意味を汲みながら学習しましょう。 |