mkdir + cd

ディレクトリを作成して、その作成したディレクトリにcdするとき、同じディレクトリのパスを2回書かなければならず、ディレクトリ名が長い場合などは特に面倒くさい。
例えば名前が日付のディレクトリを作成してcdするなら、次のようなコマンドになる。

mkdir -p `date +%Y%m%d`
cd `date +%Y%m%d`

これを同じパスを2回書くことなく行うには、$_を使用する。
$_には前回のコマンドの最後の引数が格納されている。mkdirを打った後には、作成したディレクトリ名が$_に入っていることになる。

mkdir -p `date +%Y%m%d`
cd $_

ワンライナーで書くなら、&&でつなぐ。

mkdir -p `date +%Y%m%d` && cd $_

sort -o

$_をsortにも使ってみる。
sortのオプション-o OUTFILEでsort結果の出力先が指定できる。sortに渡すファイルとsortが書き出すファイルを同一にしたければ、 sort -o file.txt file.txt のように同じファイル名を書かなければならない。もし絶対パスで指定するとなると面倒くさい。

同じパスを2回書くことなく行うには、事前にcatやlsの引数にファイル名を指定してからsortを実行すればいい。

# -u でuniq処理を行い、 -o で同一ファイルパスを指定して上書きする
sort -uo /too_long/directory/file.txt /too_long/directory/file.txt
# 確認
cat /too_long/directory/file.txt

$_を使って書きかえる。

ls /too_long/directory/file.txt
sort -uo $_ $_
cat $_