ファイルの検索
感動した!
現在のディレクトリ以下で今日更新されたファイル(のみ)、但しtemplates_cとcacheディレクトリは除く
find . -mtime -1 -ls -type f |grep -v "templates_c|cache"
現在のディレクトリ以下で1時間以内に更新されたファイル、但しDS_Storeは除く
find . -mmin -60 -ls |grep -v "DS_Store"
現在のディレクトリ以下で.cgiの拡張子のファイルを(ファイル名を)表示しつつのパーミッションを755に
find . -name “*.cgi” -ls -exec chmod 755 {} \;
現在のディレクトリ以下で60分以内に更新されているファイルを一つ上にあるmodifiedディレクトリにディレクトリ構造を保ったままコピー
find . -mmin -60 -print0 | cpio -pd0 ../modified
昨日以降の場合
find . -mtime -1 -print0 | cpio -pd0 ../modified
拡張子ごとのファイル数を数える
$ find . -type f -print | sed -e 's/^.\///' | grep '.' | sed -e 's/^..//' | sort | uniq -c | sort -nr
参照・すばらしい:シェルで拡張子一覧:教えてGoo
ファイル数を数える
(下のは.csvファイルのみ)
find ./ -name "*.csv" | wc -l
参照: 逆引きUNIXコマンド/ファイル数を取得する
ファイルの内容を検索
find . -type f -exec grep -q hoge {} \; -print
参考:「ファイルの中身の文字列を検索したい 」
http://h30499.www3.hp.com/t5/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%AE%A1%E7%90%86/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%97%E3%81%9F%E3%81%84/td-p/1182069?profile.language=ja#.Vdp0jdOvExM
find と xargsを使った便利なこと
現在のディレクトリ以下のファイルの文字コードを出力
find . -type f -print0 | xargs -0 nkf --guess
パスワード付きのZip圧縮
hoge.docをhoge.zipにパスワード付きのzipにする
$ zip -e hoge.zip hoge.doc
Enter password:
Verify password:
この間までzipしたあとzipcloakとか使ってましたが、こっちのほうが簡潔かも。
ディレクトリを比較し、ファイルの存在に関する差分を出力
diff -I ".*" -r dir_a dir_b
http://okwave.jp/qa/q1470351.html
出力したファイルから明らかに関係ないファイルを削除
cat result.txt |grep -v '_baks|Thumbs.db|.LCK|_notes|.files|_mm' > result3.txt
手元にないWebサイトのひな形作成
再帰的に、相対リンクに書き換え、1つ先の階層まで、の場合
wget -r -k -l 1 http://example.com
1ページのみ、相対リンクに書き換え
wget -p -k http//example.com/hoge.html
ヘッダを追加とURLのリストを指定
wget --header="Authorization: Basic hogehogehoge" -p -k -i path/to/file.txt
ローカルでサイト作成後リンク切れや使っていないファイルをあぶり出す(スタティックに限る)
- wgetでローカルのコンテンツをHTTPを使ってコピー
log.txtにログを出すように、再帰的に、上のディレクトリには行かない
その後ログを開いてNot Foundと出た行の前3行を含めて表示
wget -o log.txt -r -np http://localhost/hogehoge/ ; cat log.txt|grep -n -B 3 "Not Found"
その後、コピーされたファイル群とローカルにあるサイトの中身をDiff(MacOSXだとFileMerge)で比較
linkcheckerを使う
まあ、専用のツールなので。。
linkchecker -Fhtml http://localhost/hoge
Numbersのアルファベットの列名をR1C1形式の数字に(コマンドラインと言っていいか微妙)
python -c "import sys; print (ord(sys.argv[1][0])-ord('A')+1)*26+(ord(sys.argv[1][1])-ord('A')+1)" 'AA'
ディスクイメージの書き込み
経過の分かるdd
homebrewなどでpvをインストールしておく。
brew install pv
パスワードを入れる事ができなくて2回目のsudoでこけるので、予めsudoで何かしてパスワードを再入力しなくても良い状態にしなければならない。sudo lsでも大丈夫と思われます。(MacOSXの場合。sudo ddしなくても良い場合は関係ないです)
sudo dd if=/path/to.img | pv | sudo dd of=/dev/rdisk1 bs=1m
ブロックサイズはデフォルトだと百数キロバイト/s、1m以上だと13.3MiB/s、/dev/disk1だと遅く、同じデバイスを指す/dev/rdsik1だと速い。
パーセンテージを出すやり方もありそうです。
http://askubuntu.com/questions/215505/how-do-you-monitor-the-progress-of-dd
Perlのデバッグ
PHPのerror_log();的なもの、いつも忘れてしまう。。
print STDERR “Hello\n”;
多言語化を手動でやる場合
homebrewでgettextをインストールしてもxgettextが使えない。。
フルパスを指定するとできました(バージョンは適宜)。
テンプレートの作成
()で囲んであるテキストがsrc_file.pyにあり、hoge.potを出力
/usr/local/Cellar/gettext/0.19.5.1/bin/xgettext -k”” -o hoge.pot src_file.py
hoge.potから日本語のpoファイルを生成
/usr/local/Cellar/gettext/0.19.5.1/bin/msginit –locale=ja –input=hoge.pot
その後poEditなどで翻訳作業。
参考になりました。
GetTextを用いたローカライズ方法
(いまさら)ファイルのコピー
「同名のディレクトリに階層を保ったままコピー」という状況
aのディレクトリと同じ(違っても良いですが)ディレクトリ構成のb以下のファイル・ディレクトリをコピー、ファイルを上書きしそうになったら知らせる。
cp -ri b/* a
コマンドの履歴を表示
history
minicomでポートを指定
minicom -D /dev/ttyACM0
セクタサイズ・ブロックサイズの確認@macos
セクタサイズ・ブロックサイズは同じという認識ですが、、
diskutil info /dev/disk5s1
disk5で止めてしまうと恐らく書き込むときの単位(ソフト寄りの話)になってしまうような気がします。
disk5s1までやると
Volume Total Space: 127.7 GB (127721799680 Bytes) (exactly 249456640 512-Byte-Units)
Volume Used Space: 83.2 GB (83197489152 Bytes) (exactly 162495096 512-Byte-Units) (65.1%)
Volume Free Space: 44.5 GB (44524310528 Bytes) (exactly 86961544 512-Byte-Units) (34.9%)
Allocation Block Size: 4096 Bytes
とか言う格好でAllocation Block Sizeというのが出てくるので、こちらが正解(?)。
Windowsで4096のブロックサイズでexFATフォーマットできたものの、AndroidやらmacOSからは壊れているとかできちんと扱ってもらえない模様。。
他、Windowsでフォーマットする時、デフォルトのパラメータで間に合わない場合など
http://www.atmarkit.co.jp/ait/articles/1307/29/news117.html
いろいろクリアする
環境変数再読み込み
$ source ~/.bash_profile
インストールしたRubyを使用可能な状態にする
$ rbenv rehash
正規表現
タブ区切りと思ったらスペース区切りだったものをタブ区切りに
こちらを参考にさせていただきました。
[^\S\n]+