最近の更新 | |
---|---|
ドライランのありがたみを改めて知る
| 2024/04/04 |
伊豆半島
| 2024/03/31 |
お出かけチェックリスト
| 2024/03/29 |
Ruby
| 2024/03/27 |
Kubernetes
| 2024/03/22 |
音楽データをDisplayAudioで聞く
| 2024/03/09 |
Redmine
| 2024/02/05 |
git
| 2024/02/02 |
経済
| 2024/01/08 |
どうする家康
| 2023/12/17 |
MX-Linux
| 2023/11/06 |
國體関連学-休学のご連絡
| 2023/08/13 |
Debian
| 2023/08/02 |
CentOS
| 2023/06/13 |
Dell-XPS13
| 2023/05/23 |
ベルト
| 2023/05/18 |
SourceForge
| 2023/04/17 |
確定申告
| 2023/02/19 |
さらば「まぐまぐ」
| 2023/01/09 |
風猷縄学
| 2022/11/23 |
cpio はもうほとんど使わない。tar が生き残った。
find で集めたファイルを tar に渡す方法。ググると正解はあるけど、 こちらにメモ。拡張子 txt のみを取り出して /tmp/x.tgz に集める:
$ find . -name '*.txt' -print0 | tar cvz -T - --null -f /tmp/x.tgz
ググる時たまに見る xargs 版は確かに使わないほうが良い。
ヒストリーは 20000 行としているが、それでも時々ヒストリーに残っていて欲しかった 行が消えていて困った、ということがある。 で、少し調べてみた:
$ history | ruby -ane '$F.shift; print $F.join(" "), "\n"' | sort | uniq -c | wc 6423 25596 287026
重複分を取り除くと、6423行に圧縮される、ということだ。
そこで、圧縮して再度 history に入れておくことにする:
$ cd $ cp .bash_history /tmp/bash_history.bkp $ sort /tmp/bash_history.bkp | uniq >.bash_history (念のため logout / login) $ history | wc # ヒストリの数を確認
(この節は以前のアイデア。 HISTIGNOREで無視すると、「直前に打った内容を再入力したい」時に不便 だということに気づいた。例えば 'git log' と打ってもう一度 git log したくても git log を HISTIGNORE に含めていたので表示されない。 なので、HISTIGNORE するのではなく、思い立った時に上のアイデアで 圧縮するのがよいと考えた次第。2012/06/15)
圧縮して ~/.bash_history に入れ直すことも考えたが、それはさておき、まず 重複の多いものをリストしてみるとこうなった:
$ history | ruby -ane '$F.shift; print $F.join(" "), "\n"' | sort | uniq -c | sort -nr | lv 874 ls 827 git status 453 git diff 432 git st 418 git log 390 pwd 339 ll 215 lv -c log/development.log 166 cd .. 152 clear 143 git svn dcommit 131 git commit -v -a 107 lt 107 cd 103 git stash pop :
で、これを元に HISTIGNOREに上位何件かを登録すれば良さそうだ:
export HISTIGNORE='ls:git st:git diff:git log:pwd:ll:cd ..:clear:lt'
よく忘れるので φ(..)メモメモ。
実例と共に。ホームディレクトリ以下を探索し、 ディレクトリとその名前の長さを長い順に印字。 ただし、~/.crypt は除外:
$ find /home/me -path /home/me/.crypt -prune -o -print | ruby -ane 'printf "%d %s\n", $F[0].size, $F[0]' | sort -n -r >/tmp/x.home-me