新しいファイルを確認する方法

はじめに

いま何やってたっけ? ここどこ? 私は誰? という状況のとき、新しいファイルをリストにしたいとおもうことがあります。

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

とかします。

以上