| 最近の更新 | |
|---|---|
| 夢
| 2025/10/21 |
| お出かけチェックリスト
| 2025/08/30 |
| 韓国
| 2025/08/18 |
| 音楽データをDisplayAudioで聞く
| 2025/08/18 |
| 飛行機はなぜ飛ぶか
| 2025/08/18 |
| 養老孟司
| 2025/08/18 |
| 駅探(3646)
| 2025/08/18 |
| 騙す方が悪いのか・騙される方が悪いのか?
| 2025/08/18 |
| 高麗神社
| 2025/08/18 |
| 鴨川シーワールド
| 2025/08/18 |
| 黒岩一美
| 2025/08/18 |
| 網野善彦
| 2025/08/18 |
| 縄文聖地巡礼
| 2025/08/18 |
| 老荘
| 2025/08/18 |
| 聖方位
| 2025/08/18 |
| 自分のためにやるからこそ、それがチームのためになる
| 2025/08/18 |
| 自転車
| 2025/08/18 |
| 自転車のライトに泣く
| 2025/08/18 |
| 落合史観の用語補足
| 2025/08/18 |
| 落合莞爾
| 2025/08/18 |
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