Linuxゲリラ戦記

お花にタッチ。

26.Linuxで使うお花マーク*とtouchコマンド

ナックス「こんにちは。今回はお花マークと、ついでにtouchコマンドを解説致します」

デビー君「おはなマーク?タッチコマンド?」

ナックス「タッチコマンドってなんだかエッチな響きだよね!」

ナックス「とりあえずtouchコマンドから簡単に解説致します。touchコマンドは空ファイルを作成するコマンドです」

$ touch ファイル名

デビー君「からファイル?」

ナックス「つまり、中身に何も書かれていないファイルのことです。本来はもっと違うことに使うのですが、それも解説致します」

デビー君「でも、空のファイルなんて作成してどうするの?意味がなくない?」

ナックス「そうですね。あんまり使いどころは無いですが、Linux初心者にファイル操作を教える時に『ファイルは音楽ファイルでも画像ファイルでもテキストファイルでもなんでもいいからなー。何のファイルで解説しようかなー……』って時に重宝しますな」

デビー君「あー。なるほど」

ナックス「さぁ!CUI環境を立ち上げよ!」

CUI環境を立ち上げよう

デビー君「立ち上げたよー」

ナックス「まず、今回の解説で使う練習用のディレクトリを作成します。ディレクトリ名はrensyuuにしておきますか」

$ mkdir rensyuu

rensyuuディレクトリを作成しよう

ナックス「なお、既にrensyuuという名前のディレクトリがある方は、別の名前のディレクトリでも構いません。今回は特にディレクトリ名は重要では無いので」

デビー君「作ったよー」

ナックス「じゃあ中に移動してください」

$ cd rensyuu

rensyuuディレクトリに移動しよう

デビー君「移動しましたー」

ナックス「作成したばかりのディレクトリなので、もちろん中身は空っぽです──が、一応lsコマンドで確認しますか」

$ ls

rensyuuディレクトリの中身が空っぽなのを確認しよう

デビー君「空っぽですなー」

ナックス「さて。さっそくtouchコマンドを使っていくつかファイルを作成します。今回大事なのはファイル名です。解説と同じ名前でファイルを作成してください」

デビー君「はーい」

$ touch a

touchコマンドでaファイルを作成しよう

ナックス「とりあえず一つ試しにファイルを作って見ました。lsコマンドでaというファイルが作成されているか確認してみましょう」

$ ls

lsコマンドでaファイルが出来ているか確認しよう

デビー君「出来とるー!」

ナックス「せっかくの良い機会なので、今回はlsコマンドに-lというオプションをつけてみましょう」

デビー君「lsコマンドにもオプションがあるのか」

$ ls -l

lsコマンドに-lオプションをつけて実行しよう

デビー君「な、なんだか難しそうなのが表示された……」

ナックス「そうです。-lオプションをつけると、一気にファイルに関する情報が増えます。全部一度に解説すると多分皆さん『うへー……』ってなるので、必要な所だけ……」

-rw-r--r-- 1 (多分)あなたのLinuxユーザー名 (多分)あなたのLinuxユーザー名 0 2009-12-19 12:47 a

ナックス「一番右が『ファイル名』です。今回のファイル名はaなので、aって表示されています。その左が『ファイル作成時刻』。その左が『ファイル作成年月日』。さらにその左が『ファイルの容量』です」

デビー君「『ファイルの容量』?」

ナックス「そうです。『ファイルのサイズ』とも言いますね。要するに『情報量』のことです。今回は空のファイルなので0ですが、今までに使った画像ファイルなんかは『画像という情報』を持っているので、それなりの『情報のサイズ』が書かれています。ぜひ空ではないファイルが置いてあるディレクトリでls -lを試してください」

ナックス「さて。ついでにtouchコマンドの本来の使い方も解説します。touchコマンドは、本来ファイルの更新日時を更新させるコマンドです」

デビー君「ファイルの更新日時?」

ナックス「そうです。『ファイルの更新日時』とは『ファイルデータをいじった最後の日』のことです。先ほどのls -lコマンドで作成日・作成時刻が表示されている箇所がありますね?例えば今回のこのaファイルの中に文字とかを書くと、この作成日・作成時刻が、『ファイルの中に文字を書いた日時』に変更されます」

ナックス「本来はtouchコマンドを使わなくても、データをいじったら勝手に日付が更新されます。が!!『データはいじらないけど更新日時だけ更新(新しく)したいなー』って時に使う!それがtouchコマンド!」

デビー君「そんな状況あるの?」

ナックス「知らん!!」

ナックス「まぁ、せっかくなのでtouchコマンドを使ってaファイルの更新日時を更新してみましょう」

$ touch a

aファイルの更新日時を更新しよう

$ ls -l

更新できたか確認しよう

デビー君「あ!時刻が変わった!」

ナックス「そうです。touchコマンドを使うと現在の日時に更新されるんです」

ナックス「でも今日のメインディッシュはお花マーク。touchコマンドで空ファイルを作りまくるぞ、うらー!!」

$ touch a1
$ touch a2
$ touch a1b
$ touch a1c
$ touch b1
$ touch b2
$ touch b1a
$ touch b1c
$ touch c1
$ touch c2
$ touch c1a
$ touch c1b

touchコマンドでファイルをたくさん作成しよう

デビー君「うわー。結構たくさん作ったね」

ナックス「さて。今日の本題。お花マークについて。お花マークとは * のことです」

キーボードのこれがお花マーク

デビー君「へー。これが『お花マーク』かー」

ナックス「『Shiftキー』を押しながらこのキーを押せば*(お花マーク)が記入できます」

ナックス「『お花マーク』をLinuxのコマンドで使うと!『ほにゃらら』という意味になります!!」

デビー君「!!??」

ナックス「オーケー!!まずはlsコマンドで以下のように打ってみよう!!」

$ ls a*

デビー君「aの直後にお花マークを書くの?」

ナックス「そうです!!結果はこんな感じになります!」

a a1 a1b a1c a2

一番最初に「a」の文字がつく名前のものが表示される

デビー君「あれ?先頭にaっていう文字がつく名前のファイルしか表示されないよ?」

ナックス「そうです!!a*と書くことで、『aほにゃららのファイル(とディレクトリ)』を指定したのです!次はこんな感じでlsコマンドを打ってみよう」

$ ls *1*
a1 a1b a1c b1 b1a b1c c1 c1a c1b

「1」の文字がつく名前のものが表示される

ナックス「こいつは『ほにゃらら1ほにゃらら』という名前のファイルとディレクトリを指定したんだ!」

ナックス「お次はこうだ!!」

$ ls *c
a1c b1c

最後に「c」がつく名前のものが表示される

ナックス「こいつは『ほにゃららc』という名前のファイルやディレクトリを指定したことになる」

デビー君「なるほど。ちょっと分かってきた」

デビー君「でも一つ疑問が」

$ ls *1*

デビー君「って指定すると、なんとなく1の前と後、両方に何かの文字が必要な気がするけど、結果には」

a1 a1b a1c b1 b1a b1c c1 c1a c1b

デビー君「例えばa1とかb1とかc1とか、後ろに何も文字が無いものまで出てきちゃってるよ?」

ナックス「うん。実はお花マーク*は『0文字以上のほにゃらら』っていう意味だ。0文字も含まれる。つまり『後ろが0文字の』a1やb1やc1もヒットするんだ。逆に、例えば1aとか1bっていうファイル名があれば、そっちにもヒットするよ。試してみてね」

デビー君「なるほど」

ナックス「さて。解説はここまでです。が!一つ訂正があります!」

デビー君「訂正?」

ナックス「*の正式名称は『アスタリスク』と言います。『お花マーク』と言っても誰も分かってくれない可能性が大です!」

デビー君「え?そうなの?じゃあ何で『お花マーク』なんて言ったの?」

ナックス「その方が初心者に親しみやすいからさ!この心遣い!私を褒めて構いません!!」

デビー君「…………」

ナックス「訂正2!」

デビー君「え。まだあるの?」

ナックス「*による『ほにゃらら』と表現する方法は、正式名称『正規表現』と言います!なので!『ほにゃららを使えばいいんじゃない?』って言っても誰も分かってくれない可能性が大です!」

デビー君「へー。そうなんだ」

ナックス「さて、最後にrmコマンドとお花マークを使ってばしっとこのコマンドを打ってみましょう」

$ rm *

デビー君「ん?お花マークだけ使うの?」

ナックス「そうです!」

お花マークだけを使ってrmコマンドを使ってみる

ナックス「lsコマンドで確認してみてね」

$ ls

lsコマンドでどのような状況か確認する

デビー君「あ!ファイルが全部消えてる!」

ナックス「そうです。*は『0文字以上のすべての文字』。つまり、すべてのファイルを指定することになります。一気に全部消せて、いやー、爽快爽快!」

デビー君「でも、これって使う場所を考えないと恐ろしいな……」

ナックス「そうです。ホームディレクトリやrootディレクトリなど、使う場所によっては大事なファイルまで全て消してしまうことになります。正規表現を使うときは注意してね!」

デビー君「で、次回は何を教えてくれるの?」

ナックス「そろそろLinuxの文字書きソフトで文字を書く方法を教えようかと思う(27.Linuxの文字書きソフト(テキストエディタ)nano)!」

補足

「touchコマンドが見つからない」のようなエラーが出る場合

実は、『コマンド』というものも『パッケージ(ソフトウェア)』の一種です。

よって、コマンドが無い場合はyumコマンドなりaptitudeコマンドを使うなりしてtouchコマンドをインストールしてね。

正確には『正規表現』ではなくて『ワイルドカード』ではないですか?

ごめんなさい。その通りです。私自身勉強不足できちんと自信を持って断言できないのですが

ワイルドカード
OSのシェルが提供する特殊な意味を持つアスタリスクの事
正規表現
個々のアプリケーション(例えばコマンドとか)が提供する特殊な意味を持つ(アスタリスクも含んだ)文字の事

です。

「もうちょっと、こう説明したほうが正しいよ(分かりやすいよ)」ってご指摘くださる方はメール(master@garunimo.com)いただければ幸いです。

このエントリーをはてなブックマークに追加