mkdir + cdやsort -oで同じパスを二回書かない方法
2018/01/24
mkdir + cd
ディレクトリを作成して、その作成したディレクトリにcdするとき、同じディレクトリのパスを2回書かなければならず、ディレクトリ名が長い場合などは特に面倒くさい。
例えば名前が日付のディレクトリを作成してcdするなら、次のようなコマンドになる。
1 2 |
mkdir -p `date +%Y%m%d` cd `date +%Y%m%d` |
これを同じパスを2回書くことなく行うには、$_
を使用する。
$_
には前回のコマンドの最後の引数が格納されている。mkdirを打った後には、作成したディレクトリ名が$_
に入っていることになる。
1 2 |
mkdir -p `date +%Y%m%d` cd $_ |
ワンライナーで書くなら、&&
でつなぐ。
1 |
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を実行すればいい。
1 2 3 4 |
# -u でuniq処理を行い、 -o で同一ファイルパスを指定して上書きする sort -uo /too_long/directory/file.txt /too_long/directory/file.txt # 確認 cat /too_long/directory/file.txt |
$_
を使って書きかえる。
1 2 3 |
ls /too_long/directory/file.txt sort -uo $_ $_ cat $_ |