【Ruby入門】ディレクトリ(フォルダ)の作成、削除
  • facebookページ
  • twitterページ
  • 2017.12.11

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    前記事「【Ruby入門】ファイルの移動、コピー、削除」では、ファイルの操作を解説しました。

    今度はフォルダの操作を解説します。

    単純にフォルダの操作だけでは面白くないので、前記事と本記事を合わせて、現場でよく使う技術を解説します。

    今までどちらかというと技術ごとのピンポイントの解説となりましたが、それらを連続して一連の流れを作ってみます。

    本解説を通じて、点の理解がつながって線の理解になることを願ってやみません。

    ※本解説は、UnixやMacの表記にならって進めます。
    ※Windowsをお使いの方は「/」を「¥」に置き換えてください。

    フォルダ(ディレクトリ)の簡単な解説

    超簡単に、前提となる知識を整理しておきましょう。

    フォルダとは、ファイルやフォルダを格納するものです。

    フォルダの中には、ファイルやフォルダが混在できるのはご存知のとおりです。

    前記事では「フォルダ」という用語で解説しましたが、これではどうしても理解が頭打ちになることがあります。

    「フォルダ」といってしまうと画面上のアイコンや、文具でいう実物のフォルダからくる入れ物のイメージが理解をさまたげるのです。

    フォルダはファイルシステム的にいうと正しくはディレクトリで、ディレクトリを理解するためには階層構造のイメージを持たないといけません。

    なぜなら、上の階層、下の階層を行ったり来たり、といった操作を頻繁に行うからです。

    よってこれ以降、ディレクトリという用語で解説を進めます。

    カレントディレクトリという考え方

    「では、ディレクトリの中身を表示してください」

    いきなりこういわれれば、困りますよね。

    それもそのはず、ディレクトリはたくさんあるので、どこの中身かわかりません。

    では、今どこのフォルダにフォーカスが当たっているのか(つまり操作の拠点は今どこか?、もっと簡単にいうと今どこにいるのか)を表現する言葉として、カレントディレクトリ(current directory)を覚えておきましょう。

    上図で例えれば、カレントディレクトリがchild1なら、ディレクトリの中身はといわれればsample3.txtとなり、parentがカレントディレクトリなら中身はchild1,child2,sample1.txt,sample2.txtとなります。

    parentディレクトリを一番頂点とすれば、parentをルートディレクトリと呼びます。

    相対パスと絶対パス

    parentからみたsample4.txtを表現するとこうなります。

    このように、ルートディレクトリからみて、ディレクトリを「/」で区切って表現したものを絶対パスといいます。

    一方、sample3.txtからみたsample4.txtはこうなります。

    「..」は1つ上の階層、「.」はその直下という意味です。つまりsample3.txtがいる階層から、

     

    • ひとつ上がる(parent)
    • parent直下のchild2
    • その中のsample4.txt

     

    という意味です。つまりどこか特定のディレクトリやファイルから、目的の場所までの通り道の表現方法を相対パスといいます。

    絶対、相対にかかわらず、目的とするファイルやディレクトリまでの表現をパスといいます。

    ディレクトリの作成

    いよいよ、Rubyによるディレクトリの操作です。

    まずは作成から。

    作成はDirクラスのmkdirメソッドを使います。

    たったこれだけです。

    パス指定をしていないので、カレントディレクトリの直下にbackフォルダができましたが、もちろんパス指定は可能です。

    ディレクトリの削除

    ディレクトリの削除は

    を使います。

    カレントディレクトリ直下のbackフォルダを削除しましょう。

    ただし、backの中身が空である必要があります。

    中に何かファイルがあるとこういうエラーが返ります。

    これを防ぐために、前記事「【Ruby入門】ファイルの移動、コピー、削除」で出ていたfileutilsを使います。

    rm_rでディレクトリを指定すると、その中身はおろかディレクトリごと削除してくれます。

    挑戦!ログファイルの移動

    ファイルの一連の流れを組んでみる

    今まで学んだことを活かして、以下のようなシーンを想定しましょう。

    特定のフォルダに、日付をファイル名としたログファイル(例えば20171130.log)が多数あるとします。

    月が変わって2017年12月になったので、前月の年月(201711)でフォルダ名を作り、そこへ前月分を移します。

    先頭1〜6文字が201711のものが前月のログファイルとします。

    ただし、移動するときは前の月(つまり2017年11月分)と当月分(2017年12月分)が混在しているとします。

    ちょっと難しいですが、やってみましょう。

    これで、カレントディレクトリ内の前月のログだけを前月のディレクトリに移すことができました。

    解説

    1行だけのコメントなら、行頭に#を書きます。複数行を一気にコメントにする場合は、=beginと=endで囲います。

    d.prev_month.strftimeは、d.prev_monthで前月取得、.strftimeでそれをYYYYmm形式へ変換するという作業を一気に書いています。

    あとは、今までの解説で十分理解できるはずです。

    まとめ

    本記事では、今までの復習+ログファイル移動というテーマを実践しました。

    今までの知識だけでも結構なことができること、お気づきでしょうか?

    さらにいろんな手を加えて、遊んで、理解してみてくださいね!


    Ruby on Railsのフリーランスは高収入でおすすめ!

    Rubyができる方は多くはいないのが現状です。 プロジェクトは右肩上がりで増えているので、エンジニアが全く足りておりません。 Rubyの実務経験が1年以上ある方はフリーランスになることもできるので、ぜひご興味があればポテパンの無料カウンセリングをご利用下さいませ! Ruby案件に関する情報は下記にまとまっていますのでぜひご覧下さい。

    Ruby on Rails案件のイマがわかる!知って見つかる最適案件


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE