bash



Sitemap | Profile | タグ一覧
最近の更新
ドライランのありがたみを改めて知る
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


[-] 1. find + tar

cpio はもうほとんど使わない。tar が生き残った。

find で集めたファイルを tar に渡す方法。ググると正解はあるけど、 こちらにメモ。拡張子 txt のみを取り出して /tmp/x.tgz に集める:

$ find . -name '*.txt' -print0 | tar cvz -T - --null -f /tmp/x.tgz

ググる時たまに見る xargs 版は確かに使わないほうが良い。

[-] 2. ヒストリーの圧縮

ヒストリーは 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      # ヒストリの数を確認

[-] 2.1. 没案

(この節は以前のアイデア。 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'

[-] 3. find で特定のディレクトリを除外して探索

よく忘れるので φ(..)メモメモ。

実例と共に。ホームディレクトリ以下を探索し、 ディレクトリとその名前の長さを長い順に印字。 ただし、~/.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





Generated by juli 2.3.2