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文字だけでホームディレクトリを指定出来るというのは便利です。

その他、ホームディレクトリの指定以外の使用方法

チルダ展開はホームディレクトリを指定する以外の使い方も出来ます。個人的にはそれらの使用方法はあまり使う機会が無い、他の方法の方が楽だと思うので今回は簡単に触れるだけにしますが、例えばチルダに+や-といった記号を合わせると
  • ~+ : カレントディレクトリ
  • ~- : 移動する前に居たディレクトリ
といった展開が出来ます。この他にももういくつかあるのですがそちらは割愛。詳しくはBashのヘルプやドキュメントを参照して下さい。


参考およびまとめリンク


スポンサーリンク
Amazon商品リンク : シェルスクリプト関連書籍

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)