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 $_