Linux コマンド Tips¶
このページには Linux コマンドに関するメモ書きを残しておきます. 基本的には私がよく使うコマンドをメモしているだけですので, 網羅的な内容ではありません.
open コマンド¶
mac の open コマンド, cygwin の cyg-start コマンドに相当するコマンドに関してですが, gnome では gnome-open が有名でした. しかし,最近ではこのコマンドはおすすめされず,gvfs-open になっているようです.
例えば現在のディレクトリを開く場合は以下のようにします.
$ gvfs-open ./
あるディレクトリのファイルを一括で処理する¶
for 文を使用します.
私の場合,あるディレクトリを一括で作業する際には shell の方で制御することが多いので, スクリプティングを行う際には 1入力, 1出力のみを考えるようにしています.
サンプル¶
任意のディレクトリの .tiff という拡張子のファイルを .tif という拡張子に変更する.
for i in *.tiff; do
mv $i ${i%.tiff}.tif;
done
注釈
上記の例は for 文のサンプルとしては美しくないかもしれません. ${i%hogehoge}.tif の部分は本例とは関係のない知識が必要です.
これは 変数 i の %hogehoge 以外の部分を展開するという意味です. 変数 i には 現在のディレクトリに含まれる .tiff という拡張子を持つファイル名が入るので, ${i%tiff} には拡張子を除くファイル名の部分が展開されます.
shell コマンドの終了を確認する¶
コマンドを実行した直後に $0 とすると そのコマンドが無事終了したか否かを確認できます.
$ command
$ echo $?
ちなみに コマンドが終了した場合のみ別のコマンドを実行したいのみだったら 以下のように && で繋げればよいです.
$ command1 && command2
相対パスから絶対パスを取得する¶
ある任意のファイルを確認するとき、 相対パスを記述するのは結構容易ですが、絶対パスを取得するのは面倒な場合があります。 しかし、あるファイルのパスを絶対パスでハードコードしたい場合(例えば .desktop ファイルを作成する場合) なんというか面倒くさいです。
簡単にググってみた感じでは割と複雑な shell コマンドになりそうなのですが、 凄く簡単な方法を見つけたので紹介します。
readlink コマンドを使う方法です。 このコマンドの使用目的は基本的にあるリンクファイルの対象のパスを取得することなのですが、 オプションに -f をつけることで、相対パスを受け取り絶対パスを返すことが可能です。
$ readlink ~/Documents