Bash : チルダ展開(tilde expansion)でホームディレクトリパスの指定を簡単に
初めにBashの展開について簡単に
Bashでは展開(expansion)という記法を用いることで、- 複数のファイルを一括で指定
- ファイル名を編集して指定
- 別のコマンドの出力を差し込む
ワイルドカードを用いた記述
展開に用いられる記法はいくつか種類がありますが、よく使われるのはワイルドカード(*)を使った指定方法ですね。例えば、
a.txt, b.txt, c.txt, 001.jpg, a002.png
の5つのファイルからmvコマンドでtxtファイルだけをtextというフォルダに移動させる場合、
$ mv *.txt text
と記述することが出来ます。ここではワイルドカードはパターンマッチングによりテキストファイル名に展開されます。ファイル3つだけなら全てファイル名を記述してもそう大差は無いですが、これがテキストファイル100個とか200個とかになるとワイルドカードを使うなどしないと手間がかかり過ぎてしまうでしょう。
チルダ展開とは
さて今回紹介するチルダ展開ですが、そもそも「チルダとはなんぞや?」
という説明から始めていきましょう。
チルダとは
チルダは英単語では tilde で、発音を区別するために用いられる記号。波ダッシュとも呼ばれています。そして数学やコンピュータ関係ではまた特別な意味を持った記号としても用いられます。チルダはキーボードから入力すると「~」となります。
チルダ展開
コマンドでチルダを用いると、そのチルダはホームディレクトリのパスとして展開されます。これがチルダ展開。例えば
$ cd ~
とすると、~がホームディレクトリのパスとして展開されるのでこのcdコマンドでホームディレクトリに移動することが出来ます。チルダ展開がどう展開されているのか確かめるなら
$ echo ~
とするといいでしょう。この場合は
/home/foo
と表示されます(fooは任意のユーザー名にでも読み替えて下さい)。
つまりは
$ cd ~
$ cd /home/foo
は同じことを表していることになるわけです。
チルダ1文字だけでホームディレクトリを指定出来るというのは便利です。
その他、ホームディレクトリの指定以外の使用方法
チルダ展開はホームディレクトリを指定する以外の使い方も出来ます。個人的にはそれらの使用方法はあまり使う機会が無い、他の方法の方が楽だと思うので今回は簡単に触れるだけにしますが、例えばチルダに+や-といった記号を合わせると- ~+ : カレントディレクトリ
- ~- : 移動する前に居たディレクトリ
参考およびまとめリンク
スポンサーリンク
Amazon商品リンク : シェルスクリプト関連書籍
コメント
コメントを投稿