Почему / bin / true такой большой файл? Как мне найти исходный код?

Я только что узнал о /bin/true вчера. Я ни в коем случае не опытный пользователь bash, но я решил проверить это. Я был удивлен, обнаружив, что это файл 22K (Ubuntu 12.04), а не одна из самых маленьких утилит в /bin (например, kill меньше). Это на самом деле просто любопытство, но есть ли причина для того, чтобы код не был очень маленьким? Как мне найти исходный код для /bin/true?

2
задан 24.04.2014, 04:51

3 ответа

Ну, изучение источников coreutils инструментов, true один из самых маленьких. Это меньше, чем kill, хотя больше, чем false, который является самым маленьким:

$ for i in src/*c; do wc -l $i; done | sort -nr | tail -11
78 src/true.c
74 src/operand2sig.c
73 src/sync.c
37 src/prog-fprintf.c
2 src/uname-uname.c
2 src/uname-arch.c
2 src/ls-vdir.c
2 src/ls-ls.c
2 src/ls-dir.c
2 src/lbracket.c
2 src/false.c

Так, true имеет 78 строк, но только 58 из них являются на самом деле кодом (остальные - пустые строки и комментарии):

$ grep . src/true.c | awk '{ if(/\/\*/){a=0} if(a){print} if(/\*\//){a=1}}' | wc
50

И да, многое из того (10 строк) выделено эти usage функция. Программа все еще крошечная все же.

кроме того, причина, которая false является более крошечной, состоит в том, что это просто звонит true:

$ cat src/false.c
#define EXIT_STATUS EXIT_FAILURE
#include "true.c"
4
ответ дан 07.10.2019, 23:29
$ dpkg -S /bin/true
coreutils: /bin/true

, Таким образом, пакет, который на самом деле обеспечивает /bin/true файл, coreutils.

Выполнение ниже команды для загрузки исходного кода coreutils,

apt-get source coreutils
3
ответ дан 07.10.2019, 23:29

true часть GNU coreutils. Их домашняя страница здесь , и существуют ссылки на загрузку для источника там. С мерзавцем можно загрузить исходное использование:

git clone git://git.sv.gnu.org/coreutils
2
ответ дан 07.10.2019, 23:29
  • 1
    Спасибо! И путем просмотра " верный c" я могу начать отвечать на остальную часть моего вопроса. Похоже, что много кода может быть посвящено поддержке - версии и - справка? – boatcoder 24.04.2014, 04:58
  • 2
    Это и что-либо, что связано в статически. Я haven' t исследовал файлы типа "build" самостоятельно. – VTT 24.04.2014, 05:01
  • 3
    @jkt123 Вы мой быть процентом по моему ответу unix.stackexchange.com/questions/419697/… – Nic Hartley 27.01.2018, 22:30

Теги

Похожие вопросы