ファイル名で圧縮

30分プログラム、その228。画期的なDBなるものを聞いたので、似たものをシェルスクリプトで作ってみる。

高速検索性を最優先とするために、OSの基本機能であるファイル名検索に目を付け、 そこで検索対象となるファイルに含まれるデータそのものを全て「ファイル名」として管理することにしたということだ。

コメントの「圧縮率100%のファイル圧縮ツール」に目がいって、今の今までデータ圧縮のことだと思ってた。検索システムだったんだ・・・。

使い方

# サンプルファイル
$ cat hoge.txt
hoge
hoge
hoge

# 圧縮する
$ ./comp.sh --encode hoge.txt

# サイズが0のファイルができる
$ ls
aG9nZQpob2dlCmhvZ2UK
hoge.txt

# 展開する
$ ./comp.sh --decode aG9nZQpob2dlCmhvZ2UK
hoge
hoge
hoge

ソースコード

#!/bin/sh
case $1 in
    (-e|--encode) 
    touch $(base64 -e $2)
    ;;

    (-d|--decode)
    echo $2 | base64 -d
    ;;
esac