ちょっと tar
の勉強中なので Finder から選択したアーカイブ内のファイル一覧をテキストエディタで開くシェルスクリプトを考えてみた。
# mode: stdin while read f do [ ! -f "$f" ] && continue ### open in term ### #tmp=/tmp/`uuidgen` case "${f##*.}" in bz|bz2|gz|tar|tbz|tbz2|tgz|zip) ### open in textedit ### tar tf "$f" | open -ft ### open in term ### #printf 'tar tf "%s" | less' "$f" > $tmp; chmod +x $tmp; open $tmp ;; lzma|xz) ### open in textedit ### which xz && xz -tdc "$f" | tar tf - | open -ft ### open in term ### #which xz && printf 'xz -tdc "%s" | tar tf - | less' "$f" > $tmp; chmod +x $tmp; open $tmp ;; esac done
open -ft
で標準入力から受け取った結果をユーザーデフォルトテキストエディタで開く。Apple デフォルトのテキストエディタだと文字エンコーディングによっては開けないことがあるので CotEditor.app などにしておくといいかも。
### open in term ###
の方のコメントアウトを外せばターミナルアプリでコマンドが実行されて less
でファイル一覧が確認できる。また、tar -tvf
だと ls -l
と同じような出力結果になる。
tar -t
って -z
とか -j
とかの指定が必要かと思ったけど要らないらしい。*.tar.bz2 でも *.tar.gz でも tar -tf
だけで中身を確認してくれるし、*.zip にも対応している(zipinfo
の役目が…)。*.tar.xz は流石に無理なので xz
をテストモードで標準出力。これで解凍せずに tar
に送れる。新しい tar
は xz
にも対応してるみたいだから単独でもできるのかも。
欠点は Windows で作成したアーカイブだと日本語が文字化けする可能性があるということ。どうしてもという時は WINE に入れてある 7zFM.exe を使えるのでそれほど拘りはない。
使い勝手は Quick Look プラグイン系の方がいいと思う。
Mac OS でランダム文字列の生成
今までランダム文字列の生成に $$
(←これはランダムとは言わないかもしれないけど)や $RANDOM
を使っていたけど uuidgen
なんていうコマンドがあって、とてつもなく長いランダム文字列を生成してくれることを知った。(長いので1フィールド目か2フィールド目だけで充分なくらい)
$ /usr/bin/uuidgen 2330C8BE-B6DC-43D1-B4F8-457E5E4DBA69