2009-05-27

ファイルの Mac OS X 特有の情報を調べる

ファイルの Mac OS X 特有の情報を調べるには GetFileInfo コマンドを用いる.

$ GetFileInfo test.jpg
file: "/Users/yourname/Desktop/workspace/test.jpg"
type: "JPEG"
creator: "MKBY"
attributes: avbstclinmedz
created: 05/24/2009 14:53:11
modified: 05/24/2009 14:53:11

応用

カスタムアイコンを持つファイルを調べる.

find . | while read a; do
    if [ `GetFileInfo -ac "$a"` = '1' ]; then
        echo "[$a]"
    fi
done

OS X 特有情報を取り去るには

OS X 特有情報を取り去るには,ditto コマンドを用いる.

$ ditto --norsrc test.jpg test2.jpg

あるいは cat すればいい.

$ cat test.jpg >| test2.jpg

TODO

Mac OS X におけるファイルの基本原理,基本原則がわかっていないので知りたい.

2009-05-21

Bash でパイプの使用時に気をつけること

bash スクリプトでパイプを使用するとサブシェルが走る.気をつけるべきは,while のような複合コマンド内で変数を利用する場合である:

i=0
find . -name '*.c' | while read file; do
    let i++
done
echo i

では find した .c ファイルの個数ではなく,0 が表示される.while .. done がサブシェルで実行されるからである.

以下のような workaround がある.

i=0
find . -name '*.c' >| find.out
while read file; do
    let i++
done < find.out
echo i

bashクックブック p.139~

2009-05-09

apt の sources-list を自動生成する

Debian で /etc/apt/sources-list に記述するサーバとして,最もスループットがよいものを自動的に計測する方法を示す.netselect-apt パッケージを用いる.

$ cd /tmp
$ sudo netselect-apt -ns squeeze
$ view sources.list
$ sudo cp souces.list /etc/apt/sources.list

-n オプションは nonfree を含めるという意味で,-s オプションは deb-src を含めるという意味である.また,現在のところ引数の squeeze は受け入れてもらえないので,lenny で生成してから squeeze に書き換える必要がある.