リンクファイルなし運用

ふと、リンクを作る前にコマンドを実行したら実行出来てしまった。
全ての busybox のコマンドが sh の組み込みコマンドになってるような感じ。
こんな機能があったとは。

しかしだからといって、busybox を sh にリネームしてしまったらこの機能は働かなくなった。
ハードリンクかシンボリックリンクbusyboxという名前のファイルが存在している必要があるようだ。
(実体のファイル名がshで、シンボリックリンク先がbusyboxという状態でも大丈夫だった)
追記:/busyboxではダメで、/bin/busyboxである必要があるようだ。

/bin $ ls -l   ← lsの実行ファイルがなくてもlsが実行出来る
-rwxr-xr-x    2 2003     2003      1010496 Oct 25 11:16 busybox
-rwxr-xr-x    2 2003     2003      1010496 Oct 25 11:16 sh
/bin $ mv busybox ln
/bin $ ls -l   ← busyboxという名前のファイルがなくなったらlsが実行出来なくなった
/bin/sh: ls: not found
/bin $ ln -s sh busybox
/bin $ ls -l   ← busyboxというシンボリックリンクを作ったらlsが実行出来るようになった
lrwxrwxrwx    1 0        0               2 Oct 25 11:15 busybox -> sh
-rwxr-xr-x    2 2003     2003      1010496 Oct 25 11:14 ln
-rwxr-xr-x    2 2003     2003      1010496 Oct 25 11:14 sh

なお、対応コマンドの全リンクを作るときは、
あらかじめ /bin,/sbin,/usr/bin,/usr/sbin のディレクトリを用意しておいて、
% busybox --install -s