この章の目的は "Linuxならではの生産性・作業効率の高さを活かした使い方を学ぶ" ということでした。 そのためこの章では、端末の開き方・ディレクトリとファイルに関すること・シェルの各種機能・知っておきたいコマンドについて解説してきました。
ただし、具体的な作業の例についてはほとんど紹介することができていません。 この記事では、シェルの機能や各種コマンドを使った効率のよい作業例を紹介します。
特定のテキストを含むファイルを探し出し、見つかったファイルをテキストエディタでまとめて開く、ということも簡単に実現できます。
例えば、ホームディレクトリ以下にあるファイルで、拡張子が .txt かつ '今週' というテキストを含むファイルをテキストエディタ(xed)で開く場合は、
taro@myhostname:~$ xed `find ~ -type f -name '*.txt' -exec grep -l 今週 {} \;`
と実行します。
修正してから一定期間内のXCFファイルをGIMPで開く、という作業も難しくはありません。
例えば、修正してから3日以内のXCFファイルをGIMPで開く場合は、
taro@myhostname:~$ gimp `find . -mtime -3 -name '*.xcf'`
と実行します。
JPEGファイルの写真の撮影日時を一覧表示する、ということも簡単に行えます。
例えば、カレントディレクトリにある "2024" で始まるファイル名を持つ JPEG ファイルの撮影日時を知りたいなら、
taro@myhostname:~$ exiftool 2024*.jpg | grep -e 'File Name' -e 'Date/Time Original'
と実行します。
ファイルサイズが 0 のファイルを探し出して削除する、という作業であれば3通りの方法が思いつきます。 1つ目が find コマンドの -exec オプションを用いる方法で、
taro@myhostname:~$ find -size 0 -exec rm {} \;
と実行します。
2つ目の方法がコマンド置換を使う方法で、
taro@myhostname:~$ rm `find -size 0`
と実行します。
3つ目の方法は xargs コマンドを使う方法で、
taro@myhostname:~$ find -size 0 | xargs rm
と実行します。
xargs コマンドは、パイプラインからの入力を引数として別コマンドを実行するコマンドです。 例えば、
echo myfile | xargs rm
は、
rm myfile
と同等です。 なお、引数の位置が別コマンドの末尾でない場合には -i オプションを指定し、
find -size 0 | xargs -i cp {} /tmp
のように記述することができます。 -i オプションにより {} の部分がパイプラインで渡されたテキストで置換されます。
なお {} 以外のテキストを置換させることもできます。 -I オプションを使い、
find -size 0 | xargs -I@@ cp @@ /tmp
のように実行すると @@ の部分がパイプラインで渡されたテキストで置換されます。
find コマンドの -exec オプションやシェルのコマンド置換、同じくシェルのパイプラインの機能など、Linux系OSには様々な便利な機能が用意されています。 それらを上手く組み合わせて活用することで、マウス操作よりも効率よく作業を行うことができます。