はじめに
いま何やってたっけ? ここどこ? 私は誰? という状況のとき、新しいファイルをリストにしたいとおもうことがあります。
ls
でいいじゃん、なのですが、場所によってはファイルの数が膨大だったり、ディレクトリー(フォルダー)の階層が深くてどこになにがあるかわからなかったり、そもそもディレクトリーの命名方法がめちゃくちゃだったりして途方に暮れるわけです。
解決方法
ふだんは
alias lt='ls -tlF | head -20'
を使いますが、これでは作業フォルダー内のファイルが出てきません。作業フォルダーの新旧はわかるので、それなりに役に立ちます。
別解(findを使う)
alias findrecent='find . -type f -printf "%T@ %p\n" 2>/dev/null | grep -v 'git'| grep -v 'config' |grep -v 'cache' | grep -v 'local' | grep -v 'mozc' | grep -v 'bash_history' |grep -v 'config' |grep -v 'nv' |grep -v 'elm-stuff' |grep -v 'sys'| sort -n | tail -20'
これはfindを使った方法で解説が必要なので別項目にします。
解説
alias findrecent='find . -type f -printf "%T@ %p\n" 2>/dev/null | grep -v 'git'| grep -v 'config' |grep -v 'cache' | grep -v 'local' | grep -v 'mozc' | grep -v 'bash_history' |grep -v 'config' |grep -v 'nv' |grep -v 'elm-stuff' |grep -v 'sys'| sort -n | tail -20'
-type f は検索対象をファイルに限定します。
-printf "%T@ %p\n" はprintfで出力形式を指定して、%T@で1970年からの秒、%pでpath付きのファイル名、\nで改行です。
2>/dev/null は検索を始める場所によっては、権限のないフォルダーでエラーが出るので、エラーを捨てるおまじない。
grep -v "文字列" はその行にその文字列が含まれていたら表示しない。
sort -n は数字でソート。
tail -20 は最後の20個を表示する。
使い方
自分のホームディレクトリーで .bashrc に以上の2つのaliasを書いて、
source .basdhrc
して、
lt
とか
findrecent
とかします。
以上