Хорошее место для чтения источника ядра Linux является перекрестной ссылкой Linux (LXR) ¹. Возврат поисков ввел соответствия (прототипы функций, объявления переменной, и т.д.) в дополнение к свободным текстовым результатам поиска, таким образом, это более удобно, чем простой grep (и быстрее также).
LXR не разворачивает определения препроцессора. Системным вызовам исказил их имя препроцессор повсеместно. Однако большинство (все?) системные вызовы определяются с одним из SYSCALL_DEFINEx
семейства макросов. С тех пор mkdir
берет два аргумента, поиск SYSCALL_DEFINE2(mkdir
приводит к объявлению mkdir
syscall:
SYSCALL_DEFINE2(mkdir, const char __user *, pathname, int, mode)
{
return sys_mkdirat(AT_FDCWD, pathname, mode);
}
хорошо, sys_mkdirat
средства это mkdirat
syscall, таким образом нажимая на него только приводит Вас к объявлению в include/linux/syscalls.h
, но определение чуть выше.
Основное задание mkdirat
должен звонить vfs_mkdir
(VFS является универсальным слоем файловой системы). Cliking на этом показывает два результата поиска: объявление в include/linux/fs.h
, и определение несколько строк выше. Основное задание vfs_mkdir
должен назвать определенную для файловой системы реализацию: dir->i_op->mkdir
. Чтобы найти, как это реализовано, необходимо обратиться к реализации отдельной файловой системы, и нет никакого твердого правила — это мог даже быть модуль вне дерева ядра.
¹ LXR является программой индексации. Существует несколько веб-сайтов, которые предоставляют интерфейс LXR с немного отличающимися наборами известных версий и немного отличающимися веб-интерфейсами. Они склонны приходить и уходить, поэтому если тот, к которому Вы привыкли, не доступен, сделайте веб-поиск “перекрестной ссылки Linux” для нахождения другого.
ls
, но анализируя вывод du
или df
относительно распространено. (Следите, для df
, необходимо использовать df -P
при парсинге.)Обратите внимание, что, если Вы устанавливаете BLOCKSIZE=human-readable в Вашей среде, это будет значением по умолчанию, по крайней мере, для команд от GNU coreutils, т.е. если Вы используете помещенный удар:
export BLOCKSIZE=human-readable
в Вашем файле $HOME/.bashrc.
BLOCK_SIZE=human-readable
. Также не знал о поддержке тысяч разделителей, пока я не считал это.
– Mikel
13.04.2012, 08:38
Около того, что сказал Gilles:
Когда эти инструменты, где изобретенный HDD был очень маленьким, по сравнению с сегодня. Вы не нуждались в помощи для чтения числа как 400 000.
И если Вам не нравится он, используйте систему псевдонима. В Вашем корневом каталоге,
edit ~/.bashrc
и вставьте, например:
alias df='df -h'
alias du='du -h'
Обратите внимание, что в отличие от многих других языков, Нельзя иметь пробел прежде или позади оператора присваивания (знак "равно").
sort -n
потому что я меньше интересуюсь быстрым наблюдением грубого размера каждого каталога и больше в котором подкаталог поднимает непропорционально слишком много пространства... – Shadur 14.11.2011, 10:41-h
также! – quodlibetor 14.11.2011, 21:52sort -h
был представлен в GNU coreutils 7.5. Ясный имеет 7.4, таким образом, на Ubuntu Вам нужно, по крайней мере, независимый. – Gilles 'SO- stop being evil' 19.11.2011, 04:30