Говоря строго о функциональности, env
— это двоичный файл с огромным набором функций, одна из которых — вывод переменных среды, тогда как printenv
просто выводит переменные среды.
Подводя итог, если вы привыкли работать с env, вы будете использовать env
для их печати (потому что это то, к чему вы привыкли), а если нет, вы, как правило, помните printenv
быстрее.
Практически нет различий между printenv
и env
только для печати переменных окружения. Я только что проверил, и env немного тяжелее (около 5 дополнительных КБ), и их производительность (по времени) кажется совершенно одинаковой.
Надеюсь, это прояснилось! :)
Вы можете узнать это, используя "strace chmod 03755" в соответствующем файле ". Возможно, вы добавили strace к своему образу busybox.
Мое меньше оптимальным решением на данный момент является вывод числа записей до и после команды.
Сначала я отключаю кеш записи на диск :
# hdparm -W 0 /dev/sda
Затем я пытаюсь исключить запись на диск других процессов, повторяя ядра disk stat несколько раз:
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
Я предполагаю, что в этом случае chmod
не вызывает никаких операций вывода / записи на диск.